diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
index 504ad6f..cfbf14e 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yaml
@@ -28,6 +28,7 @@ jobs:
- run: npm install -g vsce
- run: npm install
- run: npm run build
+ - run: npm run test
- run: vsce package
- name: Save Artifact
diff --git a/media/main.js b/media/main.js
index c5a5814..eb361a7 100644
--- a/media/main.js
+++ b/media/main.js
@@ -1,5 +1,6 @@
// This script will be run within the webview itself
// It cannot access the main VS Code APIs directly.
+import * as E from 'shared/elaborator/index.mjs';
(function () {
const vscode = acquireVsCodeApi();
@@ -9,8 +10,16 @@
switch (message.type) {
case 'trace':
clear();
- trace(message.trace);
- $("#trace-information").val(message.file + ' on ' + new Date().toISOString());
+ try {
+ trace(E.elaborate(message.source))
+ $("#trace-information").val(message.file + ' on ' + new Date().toISOString());
+ } catch (e) {
+ console.error('Error while elaborating trace', e)
+ vscode.postMessage({
+ command: 'notify',
+ value: `The trace file appears to be broken: ${e}`
+ })
+ }
break;
case 'clear':
clear();
@@ -972,15 +981,15 @@ ${step.value.findall_solution_text}
rule_text_full = rule_text
}
- if (rule_type == "BuiltinRule")
- if (element.value.name) {// v2
- rule_text = element.value.kind.kind + ' - ' + element.value.name + ': ' + element.value.payload.join('\n');
- rule_text_full = element.value.payload.join('\n');
+ if (rule_type == "BuiltinRule") {
+ rule_text = element.value.kind.kind + ' - ' + element.value.name;
+ if (element.value.payload.length !== 0) {// v2
+ rule_text_full = element.value.payload.join('\n')
+ rule_text += ': ' + rule_text_full;
} else { //v1
- rule_text = element.value.kind + ' - ' + element.value.value;
rule_text_full = rule_text
}
- // rule_text = rule_text.trim();
+ }
let fmt = `
diff --git a/package-lock.json b/package-lock.json
index 3483f93..f876856 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21,17 +21,17 @@
"vue": "^2.7.0"
},
"devDependencies": {
- "@types/node": "^17.0.35",
- "@types/vscode": "^1.50.0",
+ "@types/node": "^22",
+ "@types/vscode": "~1.101",
"@typescript-eslint/eslint-plugin": "^5.19.0",
"@typescript-eslint/parser": "^5.19.0",
"@vscode/vsce": "^2.19.0",
"eslint": "^8.13.0",
"mustache": "^4.0.1",
- "typescript": "^4.6.3"
+ "typescript": "^5.3"
},
"engines": {
- "vscode": "^1.50.0"
+ "vscode": "^1.101.0"
}
},
"node_modules/@babel/helper-string-parser": {
@@ -187,10 +187,14 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "17.0.45",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
- "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==",
- "dev": true
+ "version": "22.20.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz",
+ "integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
},
"node_modules/@types/semver": {
"version": "7.3.13",
@@ -199,10 +203,11 @@
"dev": true
},
"node_modules/@types/vscode": {
- "version": "1.74.0",
- "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.74.0.tgz",
- "integrity": "sha512-LyeCIU3jb9d38w0MXFwta9r0Jx23ugujkAxdwLTNCyspdZTKUc43t7ppPbCiPoQ/Ivd/pnDFZrb4hWd45wrsgA==",
- "dev": true
+ "version": "1.101.0",
+ "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.101.0.tgz",
+ "integrity": "sha512-ZWf0IWa+NGegdW3iU42AcDTFHWW7fApLdkdnBqwYEtHVIBGbTu0ZNQKP/kX3Ds/uMJXIMQNAojHR4vexCEEz5Q==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.46.0",
@@ -2824,17 +2829,18 @@
}
},
"node_modules/typescript": {
- "version": "4.9.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
- "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"peer": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=4.2.0"
+ "node": ">=14.17"
}
},
"node_modules/uc.micro": {
@@ -2849,6 +2855,13 @@
"integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
"dev": true
},
+ "node_modules/undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -3085,10 +3098,13 @@
"dev": true
},
"@types/node": {
- "version": "17.0.45",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
- "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==",
- "dev": true
+ "version": "22.20.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz",
+ "integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==",
+ "dev": true,
+ "requires": {
+ "undici-types": "~6.21.0"
+ }
},
"@types/semver": {
"version": "7.3.13",
@@ -3097,9 +3113,9 @@
"dev": true
},
"@types/vscode": {
- "version": "1.74.0",
- "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.74.0.tgz",
- "integrity": "sha512-LyeCIU3jb9d38w0MXFwta9r0Jx23ugujkAxdwLTNCyspdZTKUc43t7ppPbCiPoQ/Ivd/pnDFZrb4hWd45wrsgA==",
+ "version": "1.101.0",
+ "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.101.0.tgz",
+ "integrity": "sha512-ZWf0IWa+NGegdW3iU42AcDTFHWW7fApLdkdnBqwYEtHVIBGbTu0ZNQKP/kX3Ds/uMJXIMQNAojHR4vexCEEz5Q==",
"dev": true
},
"@typescript-eslint/eslint-plugin": {
@@ -4970,9 +4986,9 @@
}
},
"typescript": {
- "version": "4.9.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
- "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"peer": true
},
@@ -4988,6 +5004,12 @@
"integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
"dev": true
},
+ "undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "dev": true
+ },
"uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
diff --git a/package.json b/package.json
index ce7e378..54cfb80 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
],
"license": "MIT",
"engines": {
- "vscode": "^1.50.0"
+ "vscode": "^1.101.0"
},
"extensionKind": [
"ui",
@@ -29,7 +29,7 @@
"onCommand:elpi.trace",
"onCommand:elpi.clear"
],
- "main": "./out/extension.js",
+ "main": "./out/extension/extension.js",
"contributes": {
"commands": [
{
@@ -148,20 +148,26 @@
"scripts": {
"build": "mustache elpiLexicalConventions.js syntaxes/elpi.tmLanguage.mustache > syntaxes/elpi.tmLanguage.json",
"vscode:prepublish": "npm run compile",
- "compile": "tsc -p ./",
+ "compile": "tsc -b ./src/extension",
+ "compile:tests": "tsc -b ./src/tests",
"lint": "eslint . --ext .ts,.tsx",
- "watch": "tsc -w -p ./",
+ "watch": "npm run compile -- -w",
+ "watch:tests": "npm run compile:tests -- -w",
+ "run:test": "node --test './out/**/*.test.mjs'",
+ "run:promote": "node --test-update-snapshots --test './**/*.test.mjs'",
+ "test": "npm run compile:tests && npm run run:test",
+ "promote": "npm run compile:tests && npm run run:promote",
"deploy": "vsce publish"
},
"devDependencies": {
- "@types/node": "^17.0.35",
- "@types/vscode": "^1.50.0",
+ "@types/node": "^22",
+ "@types/vscode": "~1.101",
"@typescript-eslint/eslint-plugin": "^5.19.0",
"@typescript-eslint/parser": "^5.19.0",
"@vscode/vsce": "^2.19.0",
"eslint": "^8.13.0",
"mustache": "^4.0.1",
- "typescript": "^4.6.3"
+ "typescript": "^5.3"
},
"dependencies": {
"@creativebulma/bulma-collapsible": "^1.0.4",
diff --git a/src/extension.ts b/src/extension/extension.ts
similarity index 100%
rename from src/extension.ts
rename to src/extension/extension.ts
diff --git a/src/extension/provider.ts b/src/extension/provider.ts
new file mode 100644
index 0000000..c702eac
--- /dev/null
+++ b/src/extension/provider.ts
@@ -0,0 +1,309 @@
+import * as vscode from 'vscode';
+import * as path from 'path';
+
+import * as os from 'node:os';
+import * as cp from 'child_process';
+import * as fs from 'fs';
+
+import mainPage from '../shared/mainPage.mjs';
+
+export class TraceProvider implements vscode.WebviewViewProvider {
+
+ public static readonly viewType = 'elpi.tracer';
+
+ private _elpi: string;
+ private _options: string;
+ private _options_default: string;
+ private _view?: vscode.WebviewView;
+ private _source: string;
+ private _target_raw: string;
+ private _target_dir: string;
+
+ private _channel: any = vscode.window.createOutputChannel('Elpi');
+
+ constructor(
+ private readonly _extensionUri: vscode.Uri,
+ ) {
+
+ this._channel.appendLine("Running extension for " + os.platform() + " - " + os.release());
+
+ this._elpi = "";
+
+ this._options = "-test";
+ this._options_default = "";
+
+ this._source = "";
+
+ if (os.platform().toString().toLowerCase() == "win32")
+ this._target_dir = process.env['APPDATA'] + '\\';
+ else
+ this._target_dir = '/tmp/';
+
+ this._target_raw = this._target_dir + "trace.tmp.json";
+ }
+
+ public resolveWebviewView(
+ webviewView: vscode.WebviewView,
+ _context: vscode.WebviewViewResolveContext,
+ _token: vscode.CancellationToken,
+ ) {
+ this._view = webviewView;
+
+ webviewView.webview.options = {
+ enableScripts: true,
+
+ localResourceRoots: [
+ this._extensionUri
+ ]
+ };
+
+ webviewView.webview.html = this._getHtmlForWebview(webviewView.webview);
+
+ webviewView.webview.onDidReceiveMessage(message => {
+ switch (message.command) {
+ case 'notify':
+ {
+ vscode.window.showInformationMessage(message.value);
+
+ break;
+ }
+ case 'hopTo':
+ {
+ if (!message.value.startsWith('builtin')) {
+
+ const file = message.value.split(' ')[0];
+ const position = message.value.split(' ')[1];
+ // const character = position.substring(
+ // position.indexOf("(") + 1,
+ // position.lastIndexOf("@")
+ // );
+ const line = position.substring(
+ position.indexOf("L") + 1,
+ position.lastIndexOf(":")
+ );
+ const column = position.substring(
+ position.indexOf("C") + 1,
+ position.lastIndexOf(")")
+ );
+
+ let openPath = file;
+
+ vscode.workspace.openTextDocument(openPath).then(async (doc) => {
+ let pos1 = new vscode.Position(0, 0);
+ let pos2 = new vscode.Position(0, 0);
+ let sel = new vscode.Selection(pos1, pos2);
+ vscode.window.showTextDocument(doc, vscode.ViewColumn.One).then((e) => {
+ e.selection = sel;
+ vscode.commands
+ .executeCommand("cursorMove", {
+ to: "down",
+ by: "line",
+ value: parseInt(line) - 1,
+ })
+ .then(() =>
+ vscode.commands.executeCommand("cursorMove", {
+ to: "right",
+ by: "character",
+ value: parseInt(column) - 1,
+ })
+ );
+ });
+ });
+
+ this._channel.appendLine(`Hoping to file ${file} at ${line}:${column}`);
+ }
+
+ break;
+ }
+ case 'options_changed':
+ {
+ this._options = message.value;
+ this._channel.appendLine(`Options changed to: ${this._options}`);
+ break;
+ }
+ default:
+ break;
+ }
+ });
+ }
+
+ private findFileOnPath(name: string) {
+ if (name.startsWith('/')) { return true };
+
+ const paths = (process.env['PATH'] || '')
+ .split(path.delimiter)
+ .map(x => path.resolve(x, name));
+
+ for (const p of paths) {
+ if (fs.existsSync(p)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private exec(command: string) {
+
+ let result = cp.execSync(command).toString();
+
+ if (result == "")
+ result = "OK.";
+
+ this._channel.appendLine(command + ": " + result);
+ }
+
+ public clear() {
+
+ if (this._view)
+ this._view.webview.postMessage({ type: 'clear' });
+ }
+
+ public open() {
+ const options: vscode.OpenDialogOptions = {
+ canSelectMany: false,
+ openLabel: 'Open trace',
+ canSelectFiles: true,
+ canSelectFolders: false
+ };
+
+ vscode.window.showOpenDialog(options).then(fileUri => {
+ if (fileUri && fileUri[0]) {
+
+ this._channel.appendLine("Opening raw trace: " + fileUri[0].fsPath);
+
+ if (this._view)
+ this._view.webview.postMessage({ type: 'progress', state: 'on' });
+
+ const input = fs.readFileSync(fileUri[0].fsPath, 'utf-8');
+
+ this._source = fileUri[0].fsPath;
+
+ if (this._view)
+ this._view.webview.postMessage({ type: 'trace', source: input, file: fileUri[0].fsPath });
+
+ if (this._view)
+ this._view.webview.postMessage({ type: 'progress', state: 'off' });
+ }
+ });
+ }
+
+ public save() {
+ const options: vscode.SaveDialogOptions = {
+ saveLabel: 'Save raw trace as'
+ };
+
+ vscode.window.showSaveDialog(options).then(fileUri => {
+ if (fileUri) {
+ this._channel.appendLine("Saving trace as: " + fileUri.toString() + " from " + this._source);
+
+ fs.copyFile(this._source, fileUri.toString().slice(7), (err) => { // slice(7) chops 'file://'
+ if (err) {
+ this._channel.appendLine("Error saving raw trace to " + fileUri.toString().slice(7) + " " + err.toString());
+ } else {
+ this._channel.appendLine("Raw trace saved to " + fileUri.toString().slice(7));
+ }
+ });
+ }
+ });
+ }
+
+ public trace() {
+
+ let configuration = vscode.workspace.getConfiguration('elpi');
+ let current_file = '';
+
+ this._elpi = configuration['elpi'].path;
+
+ if(!this.findFileOnPath(this._elpi)) {
+ vscode.window
+ .showInformationMessage(`Failed to find elpi`, 'Go to settings')
+ .then(action => {
+ if (action == 'Go to settings')
+ vscode.commands.executeCommand('workbench.action.openSettings', '@ext:gares.elpi-lang');
+ });
+ return;
+ }
+
+ this._options_default = configuration['elpi'].options;
+
+ if(vscode.window.activeTextEditor == undefined)
+ return;
+
+ current_file = vscode.window.activeTextEditor.document.fileName;
+ vscode.window.showInformationMessage(`Tracing: ${current_file}`);
+
+ this._channel.appendLine("Trace started: " + current_file);
+
+ // --
+
+ if(os.platform().toString().toLowerCase() == "win32")
+ this.exec('cd ' + this._target_dir);
+
+ // this.exec("eval $(opam env) && " + this._elpi + " " + this._options + " " + this._options_default + " " + current_file);
+ this.exec(this._elpi + " " + this._options + " " + this._options_default.replace('[OUTPUT]', this._target_raw) + " " + current_file);
+
+ // --
+
+ this._source = this._target_raw;
+
+ // --
+
+ const input = fs.readFileSync(this._target_raw, 'utf-8');
+
+
+ // --- Send message to the view backend
+
+ if (this._view)
+ this._view.webview.postMessage({ type: 'trace', source: input, file: current_file });
+ }
+
+ private _getHtmlForWebview(webview: vscode.Webview) {
+
+ const jqueryUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'jquery', 'dist', 'jquery.min.js'));
+ const vueUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'vue', 'dist', 'vue.min.js'));
+ const fuzzUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'fuzzball', 'dist', 'fuzzball.umd.min.js'));
+ const bulmaQVUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-quickview', 'dist', 'js', 'bulma-quickview.min.js'));
+ const bulmaACUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', '@creativebulma', 'bulma-collapsible', 'dist', 'js', 'bulma-collapsible.min.js'));
+ const scriptUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'main.js'));
+ const sharedUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'out', 'shared'));
+
+ const styleResetUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'reset.css'));
+ const styleVSCodeUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'vscode.css'));
+ const styleBulmaUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma', 'css', 'bulma.min.css'));
+ const styleBulmaDVUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-divider', 'dist', 'css', 'bulma-divider.min.css'));
+ const styleBulmaTTUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-tooltip', 'dist', 'css', 'bulma-tooltip.min.css'));
+ const styleBulmaQVUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-quickview', 'dist', 'css', 'bulma-quickview.min.css'));
+ const styleBulmaPLUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-pageloader', 'dist', 'css', 'bulma-pageloader.min.css'));
+ const styleBulmaACUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', '@creativebulma', 'bulma-collapsible', 'dist', 'css', 'bulma-collapsible.min.css'));
+ const styleMDIUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', '@mdi', 'font', 'css', 'materialdesignicons.min.css'));
+ const styleMainUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'main.css'));
+
+ return mainPage({
+ styles: {
+ reset: styleResetUri.toString(),
+ vscode: styleVSCodeUri.toString(),
+ bulma: styleBulmaUri.toString(),
+ divider: styleBulmaDVUri.toString(),
+ tooltip: styleBulmaTTUri.toString(),
+ quickview: styleBulmaQVUri.toString(),
+ pageloader: styleBulmaPLUri.toString(),
+ collapsible: styleBulmaACUri.toString(),
+ mdicons: styleMDIUri.toString(),
+ main: styleMainUri.toString(),
+ },
+ scripts: {
+ jquery: jqueryUri.toString(),
+ vue: vueUri.toString(),
+ fuzz: fuzzUri.toString(),
+ quickview: bulmaQVUri.toString(),
+ collapsible: bulmaACUri.toString(),
+ },
+ imports: {
+ shared: sharedUri.toString()
+ },
+ modules: {
+ main: scriptUri.toString()
+ }
+ }, b => b);
+ }
+}
diff --git a/src/extension/tsconfig.json b/src/extension/tsconfig.json
new file mode 100644
index 0000000..9336a3b
--- /dev/null
+++ b/src/extension/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+ "module": "commonjs",
+ "rootDir": "../",
+ "outDir": "../../out"
+ },
+ "include": ["."],
+ "references": [{ "path": "../shared" }]
+}
diff --git a/src/provider.ts b/src/provider.ts
deleted file mode 100644
index ff4bc64..0000000
--- a/src/provider.ts
+++ /dev/null
@@ -1,587 +0,0 @@
-import * as vscode from 'vscode';
-import * as parser_v1 from './trace_v1';
-import * as parser_v2 from './trace_v2';
-import * as path from 'path';
-
-import os = require('node:os');
-import cp = require('child_process');
-import fs = require('fs');
-
-type TraceParser = {
- readTrace: (x: any, context?: any) => any;
-};
-
-const traceParsers: TraceParser[] = [parser_v2, parser_v1];
-
-function any_parser_readTrace(x: any) {
- let lastError: unknown;
-
- for (const parser of traceParsers) {
- try {
- return parser.readTrace(x);
- } catch (error) {
- lastError = error;
- }
- }
-
- if (lastError instanceof Error)
- throw lastError;
-
- throw new Error('Failed to parse trace with all available parser versions.');
-}
-
-export class TraceProvider implements vscode.WebviewViewProvider {
-
- public static readonly viewType = 'elpi.tracer';
-
- private _cat: string;
- private _elpi: string;
- private _elpi_trace_elaborator: string;
- private _options: string;
- private _options_default: string;
- private _view?: vscode.WebviewView;
- private _source: string;
- private _target: string;
- private _target_raw: string;
- private _target_dir: string;
-
- private _channel: any = vscode.window.createOutputChannel('Elpi');
-
- constructor(
- private readonly _extensionUri: vscode.Uri,
- ) {
-
- this._channel.appendLine("Running extension for " + os.platform() + " - " + os.release());
-
- this._elpi = "";
- this._elpi_trace_elaborator = "";
-
- this._options = "-test";
- this._options_default = "";
-
- this._source = "";
-
- if (os.platform().toString().toLowerCase() == "win32")
- this._target_dir = process.env.APPDATA + '\\';
- else
- this._target_dir = '/tmp/';
-
- this._target = this._target_dir + "trace.json";
- this._target_raw = this._target_dir + "trace.tmp.json";
-
- if (os.platform().toString().toLowerCase() == "win32")
- this._cat = "type";
- else
- this._cat = "cat";
- }
-
- public resolveWebviewView(
- webviewView: vscode.WebviewView,
- context: vscode.WebviewViewResolveContext,
- _token: vscode.CancellationToken,
- ) {
- this._view = webviewView;
-
- webviewView.webview.options = {
- enableScripts: true,
-
- localResourceRoots: [
- this._extensionUri
- ]
- };
-
- webviewView.webview.html = this._getHtmlForWebview(webviewView.webview);
-
- webviewView.webview.onDidReceiveMessage(message => {
- switch (message.command) {
- case 'notify':
- {
- vscode.window.showInformationMessage(message.value);
-
- break;
- }
- case 'hopTo':
- {
- if (!message.value.startsWith('builtin')) {
-
- const file = message.value.split(' ')[0];
- const position = message.value.split(' ')[1];
- // const character = position.substring(
- // position.indexOf("(") + 1,
- // position.lastIndexOf("@")
- // );
- const line = position.substring(
- position.indexOf("L") + 1,
- position.lastIndexOf(":")
- );
- const column = position.substring(
- position.indexOf("C") + 1,
- position.lastIndexOf(")")
- );
-
- let openPath = file;
-
- vscode.workspace.openTextDocument(openPath).then(async (doc) => {
- let pos1 = new vscode.Position(0, 0);
- let pos2 = new vscode.Position(0, 0);
- let sel = new vscode.Selection(pos1, pos2);
- vscode.window.showTextDocument(doc, vscode.ViewColumn.One).then((e) => {
- e.selection = sel;
- vscode.commands
- .executeCommand("cursorMove", {
- to: "down",
- by: "line",
- value: parseInt(line) - 1,
- })
- .then(() =>
- vscode.commands.executeCommand("cursorMove", {
- to: "right",
- by: "character",
- value: parseInt(column) - 1,
- })
- );
- });
- });
-
- this._channel.appendLine(`Hoping to file ${file} at ${line}:${column}`);
- }
-
- break;
- }
- case 'options_changed':
- {
- this._options = message.value;
- this._channel.appendLine(`Options changed to: ${this._options}`);
- break;
- }
- default:
- break;
- }
- });
- }
-
- private findFileOnPath(name: string) {
- if (name.startsWith('/')) { return true };
-
- const paths = (process.env.PATH || '')
- .split(path.delimiter)
- .map(x => path.resolve(x, name));
-
- for (const p of paths) {
- if (fs.existsSync(p)) {
- return true;
- }
- }
- return false;
- }
-
- private exec(command: string) {
-
- let result = cp.execSync(command).toString();
-
- if (result == "")
- result = "OK.";
-
- this._channel.appendLine(command + ": " + result);
- }
-
- public clear() {
-
- if (this._view)
- this._view.webview.postMessage({ type: 'clear' });
- }
-
- public open() {
- const options: vscode.OpenDialogOptions = {
- canSelectMany: false,
- openLabel: 'Open trace',
- canSelectFiles: true,
- canSelectFolders: false
- };
-
- vscode.window.showOpenDialog(options).then(fileUri => {
- if (fileUri && fileUri[0]) {
-
- let configuration = vscode.workspace.getConfiguration('elpi');
-
- this._elpi_trace_elaborator = configuration.elpi_trace_elaborator.path;
-
- if(!this.findFileOnPath(this._elpi_trace_elaborator)) {
- vscode.window
- .showInformationMessage(`Failed to find elpi trace elaborator`, 'Go to settings')
- .then(action => {
- if (action == 'Go to settings')
- vscode.commands.executeCommand('workbench.action.openSettings', '@ext:gares.elpi-lang');
- });
- return;
- }
-
- this._channel.appendLine("Opening raw trace: " + fileUri[0].fsPath);
-
- if (this._view)
- this._view.webview.postMessage({ type: 'progress', state: 'on' });
-
- this.exec(this._cat + " " + fileUri[0].fsPath + " | " + this._elpi_trace_elaborator + " > " + this._target);
-
- const trace = any_parser_readTrace(JSON.parse(fs.readFileSync(this._target, 'utf8')));
-
- this._source = fileUri[0].fsPath;
-
- if (this._view)
- this._view.webview.postMessage({ type: 'trace', trace: trace, file: fileUri[0].fsPath });
-
- if (this._view)
- this._view.webview.postMessage({ type: 'progress', state: 'off' });
- }
- });
- }
-
- public save() {
- const options: vscode.SaveDialogOptions = {
- saveLabel: 'Save raw trace as'
- };
-
- vscode.window.showSaveDialog(options).then(fileUri => {
- if (fileUri) {
- this._channel.appendLine("Saving trace as: " + fileUri.toString() + " from " + this._source);
-
- fs.copyFile(this._source, fileUri.toString().slice(7), (err) => { // slice(7) chops 'file://'
- if (err) {
- this._channel.appendLine("Error saving raw trace to " + fileUri.toString().slice(7) + " " + err.toString());
- } else {
- this._channel.appendLine("Raw trace saved to " + fileUri.toString().slice(7));
- }
- });
- }
- });
- }
-
- public trace() {
-
- let configuration = vscode.workspace.getConfiguration('elpi');
- let current_file = '';
-
- this._elpi = configuration.elpi.path;
- this._elpi_trace_elaborator = configuration.elpi_trace_elaborator.path;
-
- if(!this.findFileOnPath(this._elpi)) {
- vscode.window
- .showInformationMessage(`Failed to find elpi`, 'Go to settings')
- .then(action => {
- if (action == 'Go to settings')
- vscode.commands.executeCommand('workbench.action.openSettings', '@ext:gares.elpi-lang');
- });
- return;
- }
-
- if(!this.findFileOnPath(this._elpi_trace_elaborator)) {
- vscode.window
- .showInformationMessage(`Failed to find elpi trace elaborator`, 'Go to settings')
- .then(action => {
- if (action == 'Go to settings')
- vscode.commands.executeCommand('workbench.action.openSettings', '@ext:gares.elpi-lang');
- });
- return;
- }
-
- this._options_default = configuration.elpi.options;
-
- if(vscode.window.activeTextEditor == undefined)
- return;
-
- current_file = vscode.window.activeTextEditor.document.fileName;
- vscode.window.showInformationMessage(`Tracing: ${current_file}`);
-
- this._channel.appendLine("Trace started: " + current_file);
-
- // --
-
- if(os.platform().toString().toLowerCase() == "win32")
- this.exec('cd ' + this._target_dir);
-
- // this.exec("eval $(opam env) && " + this._elpi + " " + this._options + " " + this._options_default + " " + current_file);
- this.exec(this._elpi + " " + this._options + " " + this._options_default.replace('[OUTPUT]', this._target_raw) + " " + current_file);
-
- // cp.execSync(this._elpi + " " + this._options + " " + this._options_default + " " + current_file);
-
- this.exec(this._cat + " " + this._target_raw + " | " + this._elpi_trace_elaborator + " > " + this._target);
-
- // --
-
- if(!fs.existsSync(this._target)) {
- vscode.window.showInformationMessage(`Trace generation failed`);
- this._channel.appendLine("Trace generation failed.");
- return;
- } else {
- this._channel.appendLine("Trace generation successful.");
- }
-
- // --
-
- this._source = this._target_raw;
-
- // --
-
- const trace = any_parser_readTrace(JSON.parse(fs.readFileSync(this._target, 'utf8')))
-
- // --- Send message to the view backend
-
- if (this._view)
- this._view.webview.postMessage({ type: 'trace', trace: trace, file: current_file });
- }
-
- private _getHtmlForWebview(webview: vscode.Webview) {
-
- const jqueryUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'jquery', 'dist', 'jquery.min.js'));
- const vueUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'vue', 'dist', 'vue.min.js'));
- const fuzzUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'fuzzball', 'dist', 'fuzzball.umd.min.js'));
- const bulmaQVUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-quickview', 'dist', 'js', 'bulma-quickview.min.js'));
- const bulmaACUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', '@creativebulma', 'bulma-collapsible', 'dist', 'js', 'bulma-collapsible.min.js'));
- const scriptUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'main.js'));
-
- const styleResetUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'reset.css'));
- const styleVSCodeUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'vscode.css'));
- const styleBulmaUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma', 'css', 'bulma.min.css'));
- const styleBulmaDVUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-divider', 'dist', 'css', 'bulma-divider.min.css'));
- const styleBulmaTTUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-tooltip', 'dist', 'css', 'bulma-tooltip.min.css'));
- const styleBulmaQVUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-quickview', 'dist', 'css', 'bulma-quickview.min.css'));
- const styleBulmaPLUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', 'bulma-pageloader', 'dist', 'css', 'bulma-pageloader.min.css'));
- const styleBulmaACUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', '@creativebulma', 'bulma-collapsible', 'dist', 'css', 'bulma-collapsible.min.css'));
- const styleMDIUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'node_modules', '@mdi', 'font', 'css', 'materialdesignicons.min.css'));
- const styleMainUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'main.css'));
-
-return `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Elpi Tracer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Kind: {{ step.kind }}
-
-
- Predicate: {{ step.goal_predicate }}
- Entry point
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Step
-
-
-
-
- Runtime
-
-
-
-
-
-
- Goal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Computing trace
-
-
-
-
-
-
-
-
-
-
-
-`;
- }
-}
diff --git a/src/shared/elaborator/README.md b/src/shared/elaborator/README.md
new file mode 100644
index 0000000..af65755
--- /dev/null
+++ b/src/shared/elaborator/README.md
@@ -0,0 +1,23 @@
+The pipeline for processing a trace into renderable data consists of the
+following steps:
+
+- [Parsing](./parsing.mts)
+- [Elaboration](./elaboration.mts)
+- [Analysis](./analysis.mts)
+- [Rendering](./presentation.mts)
+
+Parsing accepts a string, parses it into version-specific items, and groups them
+into a map indexed by "step keys" (a combination of a step index and a runtime
+index). The item parser is generated from the ATD files, which come from the
+[elpi repo](https://github.com/LPCIC/elpi). It is the parser's responsibility to
+decide which version of the trace it's reading: it returns a tagged union.
+
+Elaboration then takes this map and turns it into version-independent semantic
+information, decoding the grouped items. Analysis does some further global
+semantic analysis, and rendering processes the analyzed trace into MVVM-style
+viewmodel (data that the frontend can easily render).
+
+Currently the internal semantic and presentation types are taken from the v2
+trace. The plan for the future is to make something more built for purpose, but
+it would probably be wise to do this refactoring after `main.js` is turned into
+`main.mts` and has access to this information.
diff --git a/src/shared/elaborator/StepMap.mts b/src/shared/elaborator/StepMap.mts
new file mode 100644
index 0000000..70baa47
--- /dev/null
+++ b/src/shared/elaborator/StepMap.mts
@@ -0,0 +1,73 @@
+import type { StepId, StepIdx, RuntimeId } from './types.mjs';
+
+// Unfortunately arrays and objects are compared for equality by
+// reference, so we can't just use a Map with pairs as keys like the
+// OCaml implementation does. Instead we implement this helper class.
+
+export default class StepMap
{
+ // Store runtime id on the outside, since we want to use that as the
+ // first key in lexicographic ordering
+ store: Map>
+ constructor(data?: { store: Map> }) {
+ this.store = data?.store ?? new Map();
+ }
+
+ get(key: StepId): T | undefined {
+ return this.store.get(key.runtime)?.get(key.step)
+ }
+
+ set(key: StepId, value: T): StepMap {
+ const runtimeMap = this.store.get(key.runtime) ?? new Map();
+ runtimeMap.set(key.step, value);
+ this.store.set(key.runtime, runtimeMap)
+ return this;
+ }
+
+ get size(): number {
+ let size = 0;
+ this.store.forEach(stepMap => {
+ size += stepMap.size;
+ })
+ return size;
+ }
+
+ forEach(callbackFn: (value: T, index: StepId, map: StepMap) => void) {
+ this.store.forEach((runtimeMap, runtimeIdx) => {
+ runtimeMap.forEach((v, stepIdx) => {
+ callbackFn(v, { step: stepIdx, runtime: runtimeIdx }, this)
+ })
+ })
+ }
+
+ increasing(): SortedStepMap {
+ return new SortedStepMap(
+ this.sorted((r1, r2) => r1 - r2, (s1, s2) => s1 - s2)
+ );
+ }
+
+ decreasing(): StepMap {
+ return this.sorted((r1, r2) => r2 - r1, (s1, s2) => s2 - s1)
+ }
+
+ private sorted(
+ cmpRuntime: (left: RuntimeId, right: RuntimeId) => number,
+ cmpStep: (left: StepIdx, right: StepIdx) => number
+ ): StepMap {
+ const runtimes = [...this.store.entries()];
+ // Sort runtimes descending
+ runtimes.sort(([r1], [r2]) => cmpRuntime(r1, r2));
+ // Sort steps descending
+ runtimes.forEach(entry => {
+ const steps = [...entry[1].entries()];
+ steps.sort(([s1], [s2]) => cmpStep(s1, s2));
+ entry[1] = new Map(steps)
+ })
+ return new StepMap({ store: new Map([...runtimes]) })
+ }
+}
+
+export class SortedStepMap extends StepMap {
+ constructor(sorted: StepMap) {
+ super(sorted)
+ }
+}
diff --git a/src/shared/elaborator/analysis.mts b/src/shared/elaborator/analysis.mts
new file mode 100644
index 0000000..59078e0
--- /dev/null
+++ b/src/shared/elaborator/analysis.mts
@@ -0,0 +1,105 @@
+import Unreachable from '../unreachable.mjs';
+import * as E from './elaboration.mjs';
+import { SortedStepMap } from './StepMap.mjs';
+import type {
+ GoalId,
+ GoalMap,
+ GoalSet,
+ StepId
+} from './types.mjs';
+
+export type GoalAttempt = StepId;
+export type GoalAttempts = {
+ successful: GoalAttempt[],
+ failing: GoalAttempt[]
+}
+
+export type Analysis = {
+ successful: GoalSet,
+ attempts: GoalMap
+}
+
+export function analyze(steps: SortedStepMap): Analysis {
+ const success: Set = new Set();
+
+ // TODO This is weird: the OCaml implementation's default ordering is decreasing,
+ // and then this is iterated in reverse, so in increasing order.
+ // But we are analysing siblings, which come after a goal, so they have no
+ // chance of being added yet???
+ steps.decreasing().forEach(({ step }) => {
+ switch (step.kind) {
+ case 'Init':
+ case 'Broken':
+ case 'Resume':
+ case 'CHR':
+ break;
+ case 'Suspend':
+ case 'Cut':
+ case 'Findall':
+ success.add(step.goalId)
+ break;
+ case 'Inference':
+ if (step.action.outcome.kind === 'Fail') {
+ break;
+ }
+ const siblingsSuccessful =
+ step.action.outcome.siblings.every(g => success.has(g))
+ if (siblingsSuccessful) {
+ success.add(step.goalId)
+ }
+ break;
+ default:
+ throw new Unreachable(step)
+ }
+ })
+
+ const attempts: GoalMap = new Map();
+ // Steps are already sorted in increasing order
+ steps.forEach(({ step }, stepId) => {
+ switch (step.kind) {
+ case 'Init':
+ case 'Broken':
+ case 'Resume':
+ case 'CHR':
+ case 'Suspend':
+ case 'Cut':
+ case 'Findall':
+ break;
+ case 'Inference':
+ if (step.action.kind === 'Builtin') {
+ break;
+ }
+ // Note: pushing instead of consing, look into consequences
+ if (step.action.outcome.kind === 'Success') {
+ const prev = attempts.get(step.goalId);
+ if (prev) {
+ prev.successful.push(stepId);
+ } else {
+ attempts.set(step.goalId, {
+ successful: [stepId],
+ failing: []
+ });
+ }
+ }
+ if (step.action.outcome.kind === 'Fail') {
+ const prev = attempts.get(step.goalId);
+ if (prev) {
+ prev.failing.push(stepId);
+ } else {
+ attempts.set(step.goalId, {
+ successful: [],
+ failing: [stepId]
+ });
+ }
+ }
+ break;
+ default:
+ throw new Unreachable(step)
+ }
+ })
+
+ return {
+ successful: success,
+ attempts
+ };
+}
diff --git a/src/shared/elaborator/decoding.mts b/src/shared/elaborator/decoding.mts
new file mode 100644
index 0000000..7a10c41
--- /dev/null
+++ b/src/shared/elaborator/decoding.mts
@@ -0,0 +1,317 @@
+import type {
+ CHRAttempt,
+ Constraint,
+ Cut,
+ GoalId,
+ Location,
+ R,
+ StepIdx,
+ Time,
+ Timed,
+ Item2,
+ V,
+ Event
+} from './types.mjs';
+type TimedItem = Timed<{ item: Item2 }>
+
+export function has<
+ K, T extends { item: { name: K } }
+>(key: K, l: T[]): T | null {
+ return l.find(v => v.item.name === key) ?? null;
+}
+
+export function all(key: K, f: (v: I) => O, l: I[]): O[] {
+ const output: O[] = [];
+ l.forEach(v => {
+ if (v.item.name === key) {
+ output.push(f(v))
+ }
+ })
+ return output;
+}
+
+export type NonEmpty = { head: T, tail: T[] };
+
+export class DecodeError extends Error {
+ public raw: string
+
+ constructor(message: string, raw: string) {
+ super(message)
+ this.raw = raw;
+ }
+}
+
+/**
+ * Returns sublists starting with the elements matching a predicate.
+ *
+ * In particular none of the returned sublists are empty, and the
+ * elements of l before the first element matching the predicate are
+ * dropped.
+ */
+export function splitOn(pred: (i: T) => boolean, l: T[]): NonEmpty[] {
+ const result: NonEmpty[] = [];
+ let tmp: NonEmpty | null = null;
+
+ l.forEach(x => {
+ if (pred(x)) {
+ // Flush the previous run, if any
+ if (tmp) {
+ result.push(tmp);
+ }
+ // Seed the new run
+ tmp = { head: x, tail: [] };
+ } else if (tmp) {
+ // Only push an element if there is a run
+ tmp.tail.push(x);
+ }
+ });
+
+ // Flush the final run
+ if (tmp) {
+ result.push(tmp);
+ }
+
+ return result;
+}
+
+export function allChains(
+ key: string, prefixes: string[], l: TimedItem[]
+): NonEmpty[] {
+ return splitOn(i => i.item.name === key, l).map(v => ({
+ head: v.head,
+ tail: v.tail.filter(i => prefixes.some(p => i.item.name.startsWith(p)))
+ }));
+}
+
+export function inferChains(
+ key: string, l: TimedItem[]
+): NonEmpty[] {
+ return allChains(key, ['user:assign', 'user:backchain:fail-to'], l);
+}
+
+export function chrEventChains(
+ key: string, l: TimedItem[]
+): NonEmpty[] {
+ return allChains(key, [
+ 'user:assign',
+ 'user:CHR:rule-failed',
+ 'user:CHR:rule-fired',
+ 'user:CHR:rule-remove-constraints',
+ 'user:subgoal',
+ 'user:CHR:resumed'
+ ], l)
+}
+
+export function decodeAttempt(l: TimedItem): { loc: Location, code: string } {
+ const p = l.item.payload;
+ if (p.length !== 2) {
+ throw new DecodeError('Expected a location and a string', p.toString());
+ }
+ const [loc, code] = p;
+ return {
+ loc: parseLoc(loc!),
+ code: code!
+ }
+}
+
+export function decodeInferEvent(l: TimedItem): Event {
+ const p = l.item.payload;
+ if (l.item.name === 'user:assign:resume' && p.length === 1) {
+ return {
+ kind: 'ResumeGoal',
+ goals: p[0]!.split(' ').map(g => Number.parseInt(g))
+ }
+ }
+ if (l.item.name === 'user:backchain:fail-to' && p.length === 1) {
+ return {
+ kind: 'Fail',
+ failedGoal: p[0]!
+ }
+ }
+ return {
+ kind: 'Assign',
+ repr: decodeString(l)
+ }
+}
+
+export function decodeInferAttempt(
+ l: NonEmpty
+): { loc: Location, code: string, events: Event[] } {
+ const events = l.tail.map(e => decodeInferEvent(e));
+ return {
+ events, ...decodeAttempt(l.head)
+ }
+}
+
+export function decodeCHRTryList(
+ l: NonEmpty[]
+): { successful: CHRAttempt[], failed: CHRAttempt[] } {
+ const successful: CHRAttempt[] = [];
+ const failed: CHRAttempt[] = [];
+
+ l.forEach(({ head: attempt, tail: events }) => {
+ const { loc, code } = decodeAttempt(attempt);
+ const start = attempt.time;
+ if (events.length === 0) {
+ throw new DecodeError('Expected at least one event in a CHR attempt', '');
+ }
+ const stop = events.at(-1)!.time;
+
+ const assigned: Event[] = [];
+ const resumed: GoalId[] = [];
+ const removed: GoalId[] = [];
+
+ events.forEach(e => {
+ switch (e.item.name) {
+ case 'user:assign':
+ assigned.push({
+ kind: 'Assign',
+ repr: decodeString(e)
+ })
+ break;
+ case 'user:CHR:resumed':
+ resumed.push(e.item.goal_id)
+ break;
+ case 'user:CHR:rule-remove-constraints':
+ removed.push(...e.item.payload.map(s => Number.parseInt(s)))
+ break;
+ }
+ })
+
+ const decoded = {
+ loc, code, timestamp: { start, stop }, events: assigned, resumed, removed
+ };
+ if (has('user:CHR:rule-fired', events)) {
+ successful.push(decoded);
+ } else {
+ failed.push(decoded);
+ }
+ });
+
+ return { successful, failed };
+}
+
+export function decodeString(input: TimedItem): string {
+ return input.item.payload.join('');
+}
+
+export function decodeInt(input: TimedItem): number {
+ if (input.item.payload.length !== 1) {
+ throw new DecodeError('Expected singleton', input.item.payload.toString())
+ }
+ return Number.parseInt(input.item.payload[0]!);
+}
+
+const ctxRegex = /File "\(context step_id:(?\d+)\)"/;
+const fileRegex = /File "(?[^"]+)", line (?\d+), column (?\d+), characters? (?-?\d+)/;
+function parseLoc(input: string): Location {
+ let matches = ctxRegex.exec(input);
+ if (matches) {
+ return {
+ kind: 'Context',
+ step: Number.parseInt(matches.groups!['step']!)
+ }
+ }
+ matches = fileRegex.exec(input);
+ if (matches) {
+ const groups = matches.groups!;
+ return {
+ kind: 'File',
+ file: {
+ filename: groups['name']!,
+ line: Number.parseInt(groups['line']!),
+ column: Number.parseInt(groups['col']!),
+ character: Number.parseInt(groups['beg']!)
+ }
+ };
+ }
+ throw new DecodeError('Error decoding location', input);
+}
+
+export function decodeCut(input: TimedItem): Cut {
+ const p = input.item.payload;
+ if (p.length !== 3) {
+ throw new DecodeError('Expected a goal, location and text', p.toString());
+ }
+ const [g, r, t] = input.item.payload;
+ return {
+ goalId: Number.parseInt(g!),
+ loc: parseLoc(r!),
+ clause: t!
+ };
+}
+
+export function decodeChrStoreEntry(item: TimedItem): Constraint {
+ const payload = item.item.payload;
+ if (payload.length !== 2) {
+ throw new DecodeError('Expected a number and a string', payload.toString())
+ }
+ const [gid, gtext] = payload;
+ return {
+ id: Number.parseInt(gid!),
+ text: gtext!
+ }
+}
+
+export type DecodedStep =
+ | R<'Suspend', V>
+ | R<'Findall', { origin: TimedItem, start: Time }>
+ | R<'Cut', V>
+ | R<'Focus', V>
+ | R<'Resumption', V>
+ | R<'CHR', { storeBefore: Constraint[], storeAfter: Constraint[] }>
+ | R<'Init', { goalId: GoalId }>
+ | R<'Broken', { step: StepIdx, time: Time }>;
+
+export function decodeStep(l: TimedItem[]): DecodedStep {
+ const curgoal = has('user:curgoal', l);
+ const rule = has('user:rule', l);
+ const rulePayload = rule ? decodeString(rule) : null;
+ const builtin = has('user:rule:builtin:name', l);
+ const builtinName = builtin ? decodeString(builtin) : null;
+ const chr = has('user:CHR:try', l);
+ const newg = has('user:newgoal', l);
+ if (curgoal) {
+ if (builtinName === 'declare_constraint' && !chr) {
+ return { kind: 'Suspend', value: curgoal };
+ }
+ if (rulePayload === 'findall' && !chr) {
+ return { kind: 'Findall', origin: curgoal, start: rule!.time };
+ }
+ if (rulePayload === 'cut' && !chr) {
+ return { kind: 'Cut', value: curgoal };
+ }
+ if (!chr) {
+ return { kind: 'Focus', value: curgoal };
+ }
+ } else {
+ if (rulePayload === 'resume' && !chr) {
+ return {
+ kind: 'Resumption',
+ value: all('user:rule:resume:resumed', i => i, l)
+ };
+ }
+ if (chr) {
+ return {
+ kind: 'CHR',
+ storeBefore: all('user:CHR:store:before', decodeChrStoreEntry, l),
+ storeAfter: all('user:CHR:store:after', decodeChrStoreEntry, l)
+ };
+ }
+ if (!chr && newg) {
+ return { kind: 'Init', goalId: newg.item.goal_id };
+ }
+ }
+
+ if (l.length === 0) {
+ throw new DecodeError('Empty step encountered', '')
+ }
+ const x = l[0]!;
+ return {
+ kind: 'Broken',
+ step: x.item.step,
+ time: x.time
+ };
+}
diff --git a/src/shared/elaborator/elaboration.mts b/src/shared/elaborator/elaboration.mts
new file mode 100644
index 0000000..99ca715
--- /dev/null
+++ b/src/shared/elaborator/elaboration.mts
@@ -0,0 +1,467 @@
+import Unreachable from '../unreachable.mjs';
+import * as D from './decoding.mjs';
+import StepMap, { SortedStepMap } from './StepMap.mjs';
+import type {
+ CHRAttempt,
+ Constraint,
+ Cut,
+ Event,
+ GoalId,
+ GoalMap,
+ Location,
+ ParsedTrace,
+ R,
+ RawStep2 as RawStep,
+ Item2,
+ StepId,
+ StepIdx,
+ Time,
+ Timed,
+ Timestamp,
+ V,
+ Timestamped
+} from './types.mjs';
+type TimedItem = Timed<{ item: Item2 }>
+
+export type Outcome =
+ | R<'Success', { siblings: GoalId[] }>
+ | R<'Fail'>;
+
+type BuiltinRule = {
+ name: string,
+ kind: 'Logic' | 'FFI',
+ payload: string[]
+};
+
+type UserRule = {
+ ruleText: string,
+ ruleLoc: Location,
+};
+
+export type Rule =
+ | R<'BuiltinRule', V>
+ | R<'UserRule', V>;
+
+export type Attempt = {
+ loc: Location,
+ code: string,
+ events: Event[]
+};
+
+type Action =
+ | R<'Builtin', { name: BuiltinRule, outcome: Outcome, events: Event[] }>
+ | R<'Backchain', { trylist: Attempt[], outcome: Outcome }>
+
+export type ResumeStep = R<'Resume', V<{ goalId: GoalId, goal: string }[]>>;
+export type Step =
+ | R<'Init', { goalId: GoalId }>
+ | R<'Findall', { goal: string, goalId: GoalId, timestamp: Timestamp, result: string[] }>
+ | R<'Inference', { goal: string, pred: string, goalId: GoalId, action: Action, rid: number }>
+ | R<'Suspend', { goal: string, goalId: GoalId, sibling: GoalId }>
+ | R<'Cut', { goalId: GoalId, cut: Cut[] }>
+ | ResumeStep
+ | R<'CHR', { failed: CHRAttempt[], successful: CHRAttempt[], storeBefore: Constraint[], storeAfter: Constraint[] }>
+ | R<'Broken', { step: StepIdx, time: Time }>;
+
+export type TimedStep = Timestamped<{ step: Step }>
+
+class ElaborationError extends Error {
+ public step: RawStep;
+ constructor(message: string, step: RawStep) {
+ super(message);
+ this.name = 'ElaborationError';
+ this.step = step;
+ }
+}
+
+function builtinName(l: TimedItem[]): BuiltinRule | null {
+ const name = D.has('user:rule:builtin:name', l);
+ if (!name)
+ return null;
+ return {
+ kind: 'FFI',
+ name: D.decodeString(name),
+ payload: []
+ }
+}
+
+function pushFrame(
+ stepId: StepId,
+ goalId: GoalId,
+ rule: Rule,
+ siblings: GoalId[],
+ stacks: StepMap,
+ seedStacks: GoalMap
+) {
+ const thisStack = stacks.get(stepId) ?? seedStacks.get(goalId) ?? [];
+ const newStack: Stack = [{ rule, stepId }, ...thisStack];
+ stacks.set(stepId, newStack);
+ siblings.forEach(g => {
+ seedStacks.set(g, newStack);
+ })
+}
+
+function initPostponedGoalStack(
+ stepId: StepId,
+ goalId: GoalId,
+ rule: Rule,
+ seedStacks: GoalMap
+) {
+ // We only update the seed stack: the goals haven't had any progress
+ // yet, because we're resuming it just now
+ const thisStack = seedStacks.get(goalId) ?? [];
+ const newStack: Stack = [{ rule, stepId }, ...thisStack];
+ seedStacks.set(goalId, newStack);
+}
+
+function pushEndFrame(
+ stepId: StepId,
+ goalId: GoalId,
+ stacks: StepMap,
+ seedStacks: GoalMap
+) {
+ const thisStack = stacks.get(stepId) ?? seedStacks.get(goalId) ?? [];
+ stacks.set(stepId, thisStack)
+}
+
+function elaborateStep(
+ stepId: StepId,
+ step: RawStep,
+ stacks: StepMap,
+ seedStacks: GoalMap
+): Step {
+ const { runtime: rid, step: stepIdx } = stepId;
+ const { items } = step;
+ if (!items.every(i => i.item.runtime_id === rid)) {
+ throw new ElaborationError('Found step with multiple runtime IDs', step);
+ }
+ const unGoal = (payload: string[]) => {
+ if (payload.length !== 2) {
+ throw new ElaborationError('Expected a predicate and goal', step);
+ }
+ return { pred: payload[0]!, goal: payload[1]! };
+ }
+ const decoded = D.decodeStep(items);
+ switch (decoded.kind) {
+ case 'Init':
+ case 'Broken':
+ return decoded;
+ case 'Findall': {
+ const { goal_id: goalId, payload } = decoded.origin.item;
+ const { goal } = unGoal(payload);
+ const result = D.all('user:assign', asm => ({
+ payload: D.decodeString(asm), time: asm.time
+ }), items);
+ if (result.length === 0) {
+ // TODO: maybe make this a decode error?
+ throw new ElaborationError('Findall did not assign the result', step)
+ }
+ pushFrame(
+ stepId,
+ goalId,
+ {
+ kind: 'BuiltinRule',
+ value: {
+ kind: 'FFI',
+ name: 'findall',
+ payload: []
+ }
+ },
+ [],
+ stacks, seedStacks
+ )
+ return {
+ kind: 'Findall',
+ goal, goalId,
+ result: result.map(a => a.payload),
+ timestamp: { start: decoded.start, stop: result[0]!.time }
+ }
+ }
+ case 'Suspend': {
+ const { goal_id: goalId, payload } = decoded.value.item;
+ const { goal } = unGoal(payload)
+ const siblings = D.all('user:subgoal', D.decodeInt, items);
+ if (siblings.length !== 1) {
+ throw new ElaborationError(`Suspension expects one subgoal, found ${siblings.length}`, step);
+ }
+ pushFrame(
+ stepId,
+ goalId,
+ {
+ kind: 'BuiltinRule',
+ value: {
+ kind: 'Logic',
+ name: 'suspend',
+ payload: []
+ }
+ },
+ siblings,
+ stacks, seedStacks
+ )
+ return {
+ kind: 'Suspend',
+ goal, goalId, sibling: siblings[0]!
+ }
+ }
+ case 'Cut': {
+ const { goal_id: goalId, payload } = decoded.value.item;
+ const {} = unGoal(payload)
+ const cut = D.all('user:rule:cut:branch', D.decodeCut, items);
+ pushFrame(
+ stepId,
+ goalId,
+ {
+ kind: 'BuiltinRule',
+ value: {
+ kind: 'FFI',
+ name: '!',
+ payload: []
+ }
+ },
+ [],
+ stacks, seedStacks
+ )
+ return {
+ kind: 'Cut',
+ goalId, cut
+ }
+ }
+ case 'Resumption': {
+ const resumed = decoded.value.map(item => {
+ const { item: { goal_id: goalId } } = item;
+ initPostponedGoalStack(
+ stepId,
+ goalId,
+ {
+ kind: 'BuiltinRule',
+ value: {
+ kind: 'Logic',
+ name: 'resume',
+ payload: []
+ }
+ },
+ seedStacks
+ )
+ return { goalId: item.item.goal_id, goal: D.decodeString(item) }
+ });
+ return {
+ kind: 'Resume',
+ value: resumed
+ };
+ }
+ case 'CHR': {
+ const trylist = D.chrEventChains('user:CHR:try', items);
+ const { successful, failed } = D.decodeCHRTryList(trylist);
+ const { storeBefore, storeAfter } = decoded;
+ return {
+ kind: 'CHR',
+ successful, failed, storeBefore, storeAfter
+ }
+ }
+ case 'Focus': {
+ const { item: { goal_id: goalId, payload }, time } = decoded.value;
+ const { pred, goal } = unGoal(payload);
+ const rule = D.has('user:rule', items);
+ if (!rule || rule.item.payload.length !== 1) {
+ throw new ElaborationError('Malformed execution step', step)
+ }
+ const name = rule.item.payload[0]!;
+ const siblings = D.all('user:subgoal', D.decodeInt, items);
+
+ let outcome: Outcome;
+ {
+ const result = D.has(`user:rule:${name}`, items);
+ if (result?.item.payload[0] === 'success') {
+ outcome = { kind: 'Success', siblings }
+ } else if (result?.item.payload[0] === 'fail') {
+ outcome = { kind: 'Fail' }
+ } else {
+ return {
+ kind: 'Broken',
+ step: stepIdx,
+ time
+ };
+ }
+ }
+
+ let action: Action;
+ switch (name) {
+ case 'backchain': {
+ const trylist = D.inferChains('user:rule:backchain:try', items)
+ .map(c => D.decodeInferAttempt(c));
+ if (trylist.length !== 0) {
+ const { loc, code } = trylist[0]!;
+ pushFrame(
+ stepId,
+ goalId,
+ {
+ kind: 'UserRule',
+ value: {
+ ruleLoc: loc,
+ ruleText: code
+ }
+ },
+ siblings,
+ stacks, seedStacks
+ )
+ } else {
+ if (siblings.length !== 0) {
+ throw new ElaborationError('Backchain step has siblings but no attempts left', step)
+ }
+ pushEndFrame(stepId, goalId, stacks, seedStacks)
+ }
+ action = {
+ kind: 'Backchain',
+ trylist, outcome
+ }
+ break;
+ }
+ case 'builtin': {
+ const name = builtinName(items);
+ if (!name) {
+ throw new ElaborationError('Builtin has no name', step);
+ }
+ pushFrame(
+ stepId,
+ goalId,
+ {
+ kind: 'BuiltinRule',
+ value: name
+ },
+ siblings,
+ stacks,
+ seedStacks
+ )
+ const events = D.inferChains('user:rule:builtin:name', items);
+ if (events.length !== 1) {
+ throw new ElaborationError(
+ `Builtin rule expected to have 1 name, received ${events.length}`,
+ step
+ )
+ }
+ action = {
+ kind: 'Builtin',
+ name, outcome,
+ events: events[0]!.tail.map(e => D.decodeInferEvent(e))
+ }
+ break;
+ }
+ case 'implication': {
+ const newHypsItem = D.has('user:new-hyps', items);
+ const newHyps = newHypsItem?.item.payload ?? [];
+ pushFrame(
+ stepId,
+ goalId,
+ {
+ kind: 'BuiltinRule',
+ value: {
+ kind: 'Logic',
+ name: 'implication',
+ payload: newHyps
+ }
+ },
+ siblings,
+ stacks,
+ seedStacks
+ )
+ action = {
+ kind: 'Builtin',
+ name: {
+ name,
+ kind: 'Logic',
+ payload: []
+ },
+ events: [],
+ outcome,
+ }
+ break;
+ }
+ default: {
+ const ruleName: BuiltinRule = {
+ kind: 'Logic',
+ name,
+ payload: []
+ };
+ pushFrame(
+ stepId,
+ goalId,
+ {
+ kind: 'BuiltinRule',
+ value: ruleName
+ },
+ siblings,
+ stacks,
+ seedStacks
+ )
+ const events = D.inferChains('user:rule:builtin:name', items);
+ action = {
+ kind: 'Builtin',
+ name: ruleName,
+ events: (events.length !== 0)
+ ? events[0]!.tail.map(e => D.decodeInferEvent(e))
+ : [],
+ outcome
+ }
+ break;
+ }
+ }
+
+ return {
+ kind: 'Inference',
+ goalId, goal, pred, rid, action
+ }
+ }
+ default:
+ throw new Unreachable(decoded)
+ }
+}
+
+export type Frame = {
+ rule: Rule,
+ stepId: StepId
+};
+
+export type Stack = Frame[];
+
+// TODO: Elaboration should be representation independent, move the
+// types out of trace_vX.mts to types.mts
+export type Elaboration = {
+ steps: SortedStepMap,
+ stackFrames: StepMap,
+ goalText: GoalMap
+};
+
+export function elaborateSteps(parsedSteps: ParsedTrace): Elaboration {
+ const goals: GoalMap = new Map();
+ const elaborated: StepMap = new StepMap();
+ const stacks: StepMap = new StepMap();
+ const seedStacks: GoalMap = new Map();
+
+ // The v1 and v2 raw traces are syntactically identical, so we can
+ // reuse the same code. There is a semantic difference, since some
+ // v2 BuiltinRule nodes are supposed to have more metadata, but we
+ // can't syntactically distinguish v1 and v2, so instead we use
+ // default values for the missing metadata during elaboration.
+ const steps = parsedSteps.value;
+
+
+ steps.forEach((val, key) => {
+ val.items.forEach(i => {
+ const goal = D.has('user:newgoal', [i]);
+ if (goal) {
+ goals.set(goal.item.goal_id, D.decodeString(goal));
+ }
+ })
+
+ elaborated.set(key, {
+ timestamp: val.timestamp,
+ step: elaborateStep(key, val, stacks, seedStacks)
+ });
+ });
+
+ return {
+ goalText: goals,
+ steps: elaborated.increasing(),
+ stackFrames: stacks
+ }
+}
diff --git a/src/shared/elaborator/index.mts b/src/shared/elaborator/index.mts
new file mode 100644
index 0000000..77920b9
--- /dev/null
+++ b/src/shared/elaborator/index.mts
@@ -0,0 +1,15 @@
+// TODO: extract to types.mts
+import { Trace as TraceV2 } from './trace_v2.mjs';
+
+import * as A from './analysis.mjs';
+import * as E from './elaboration.mjs';
+import * as C from './presentation.mjs';
+import * as P from './parsing.mjs';
+
+export function elaborate(input: string): TraceV2 {
+ const raw = P.parseTrace(input);
+ const elaborated = E.elaborateSteps(raw);
+ const analysis = A.analyze(elaborated.steps);
+ const cards = C.materialize(elaborated, analysis);
+ return cards;
+}
diff --git a/src/shared/elaborator/parsing.mts b/src/shared/elaborator/parsing.mts
new file mode 100644
index 0000000..0acb75f
--- /dev/null
+++ b/src/shared/elaborator/parsing.mts
@@ -0,0 +1,53 @@
+import { readItem as readItem1 } from './trace_v1.mjs';
+import { readItem as readItem2 } from './trace_v2.mjs';
+import StepMap from './StepMap.mjs';
+import type { Timed, Timestamped, ParsedTrace } from './types.mjs';
+
+export type Parsable = {
+ kind: { kind: string }[],
+ step: number,
+ runtime_id: number,
+};
+export type Parser = (x: any) => T;
+export type Parsed = Timestamped<{ items: Timed<{ item: T }>[] }>;
+
+function runParser(parser: Parser, input: string): StepMap> {
+ const steps: StepMap> = new StepMap();
+
+ let tick = 0;
+ input.split(/\n/).forEach(line => {
+ if (!line) return;
+
+ const item = parser(JSON.parse(line));
+ if (item.kind.length !== 1 || item.kind[0]?.kind !== 'Info')
+ return;
+
+ tick += 1;
+ const id = { step: item.step, runtime: item.runtime_id };
+ const next = steps.get(id) ?? {
+ timestamp: { start: tick, stop: tick },
+ items: []
+ };
+ next.timestamp.stop = tick;
+ next.items.push({
+ time: tick,
+ item
+ });
+
+ steps.set(id, next)
+ })
+
+ return steps;
+}
+
+export function parseTrace(input: string): ParsedTrace {
+ try {
+ return { kind: 'V2', value: runParser(readItem2, input) }
+ } catch {
+ try {
+ return { kind: 'V1', value: runParser(readItem1, input) }
+ } catch (e) {
+ throw new Error('Trace format not recognized')
+ }
+ }
+}
diff --git a/src/shared/elaborator/presentation.mts b/src/shared/elaborator/presentation.mts
new file mode 100644
index 0000000..d8a3bb6
--- /dev/null
+++ b/src/shared/elaborator/presentation.mts
@@ -0,0 +1,502 @@
+// TODO: this should end up in types
+import type * as C from './trace_v2.mjs';
+
+import Unreachable from '../unreachable.mjs';
+import * as A from './analysis.mjs';
+import * as E from './elaboration.mjs';
+import StepMap from './StepMap.mjs';
+import type {
+ CHRAttempt,
+ Constraint,
+ Event,
+ GoalId,
+ GoalMap,
+ Location,
+ R,
+ RuntimeId,
+ StepId,
+ StepIdx,
+ Time,
+ Timestamp,
+ V
+} from './types.mjs';
+
+export class CardError extends Error {
+ constructor(message: string) {
+ super(message)
+ }
+}
+
+function getGoalText(key: GoalId, map: GoalMap): T {
+ const result = map.get(key);
+ if (!result)
+ throw new CardError(`Goal text not found for goal ${key}`);
+ return result;
+}
+
+function getStack(key: StepId, map: StepMap): E.Stack {
+ const result = map.get(key);
+ if (!result)
+ throw new CardError(`Stack not found for step ${key}`);
+ return result;
+}
+
+type PreCut = {
+ goalId: GoalId,
+ goal: string,
+ cutBranch: {
+ clause: string,
+ loc: Location
+ }
+};
+
+type Attempt = {
+ rule: E.Rule,
+ events: Event[]
+}
+
+type SuccessfulAttempt = {
+ attempt: Attempt,
+ siblings: { goalId: GoalId, goal: string }[],
+ siblingsOutcome: 'Fail' | 'Success'
+}
+
+type Inference = {
+ goalId: GoalId,
+ goal: string,
+ predicate: string,
+ failed: Attempt[],
+ successful: { current: SuccessfulAttempt, more: StepIdx[] } | null,
+ moreFailed: StepIdx[],
+ stack: E.Stack
+};
+
+type PreStep =
+ | R<'Init', { goalId: GoalId, goal: string }>
+ // TODO: why are these called "TODO"?
+ | R<'Findall_TODO', { goal: string, goalId: GoalId, timestamp: Timestamp, result: string[] }>
+ | R<'CHR_TODO', { failed: CHRAttempt[], successful: CHRAttempt[], storeBefore: Constraint[], storeAfter: Constraint[] }>
+ | R<'Cut', { goalId: GoalId, cuts: PreCut[] }>
+ | R<'Resume', V<{ goalId: GoalId, goal: string }[]>>
+ | R<'Suspend', {
+ goalId: GoalId,
+ goal: string,
+ siblingId: GoalId,
+ sibling: string,
+ stack: E.Stack
+ }>
+ | R<'Inference', Inference>;
+
+type PreCard = {
+ timestamp: Timestamp,
+ stepId: StepId,
+ step: PreStep
+};
+
+type Color = C.Color['kind'];
+
+function contained(outer: Timestamp, inner: Timestamp): boolean {
+ return outer.start < inner.start && inner.stop <= outer.stop
+}
+
+const toColor = (color: Color): C.Color => ({ kind: color })
+
+const toGoal = (g: {goalId: GoalId, goal: string}) => ({
+ goal_id: g.goalId,
+ goal_text: g.goal
+});
+const toConstraint = (c: Constraint): C.Goal => ({
+ goal_id: c.id,
+ goal_text: c.text
+})
+const toLoc = (l: Location): C.Location => {
+ if (l.kind === 'Context') {
+ return { kind: 'Context', value: l.step }
+ }
+ if (l.kind === 'File') {
+ return { kind: 'File', value: l.file }
+ }
+ throw new Unreachable(l)
+}
+const toRule = (r: E.Rule): C.Rule => {
+ if (r.kind === 'BuiltinRule') {
+ return {
+ kind: 'BuiltinRule',
+ value: { ...r.value, kind: { kind: r.value.kind } }
+ }
+ }
+ if (r.kind === 'UserRule') {
+ return {
+ kind: 'UserRule',
+ value: { rule_text: r.value.ruleText, rule_loc: toLoc(r.value.ruleLoc) }
+ }
+ }
+ throw new Unreachable(r)
+}
+const toEvent = (e: Event): C.Event => {
+ if (e.kind === 'Assign') {
+ return { kind: 'Assign', value: e.repr }
+ }
+ if (e.kind === 'Fail') {
+ return { kind: 'Fail', value: e.failedGoal }
+ }
+ if (e.kind === 'ResumeGoal') {
+ return { kind: 'ResumeGoal', value: e.goals }
+ }
+ throw new Unreachable(e)
+};
+const toAttempt = (a: Attempt): C.Attempt => ({
+ rule: toRule(a.rule),
+ events: a.events.map(toEvent)
+})
+const toSuccess = (e: SuccessfulAttempt): C.SuccessfulAttempt => ({
+ attempt: toAttempt(e.attempt),
+ siblings: e.siblings.map(toGoal),
+ siblings_aggregated_outcome: { kind: e.siblingsOutcome }
+})
+const toFrame = (e: E.Frame): C.Frame => ({
+ rule: toRule(e.rule),
+ step_id: e.stepId.step,
+ runtime_id: e.stepId.runtime
+});
+
+export function materialize(
+ elaboration: E.Elaboration,
+ analysis: A.Analysis
+): C.Trace {
+ const preCards: PreCard[] = [];
+ const broken: { step: StepIdx, time: Time }[] = [];
+ let maxStepIdx = Number.MIN_SAFE_INTEGER;
+ let minRuntimeIdx = Number.MAX_SAFE_INTEGER;
+
+ // TODO: Some of the later processing might be merged into this pass
+ elaboration.steps.forEach(({ timestamp, step }, stepId) => {
+ let preStep: PreStep;
+ switch (step.kind) {
+ case 'Broken':
+ broken.push({ time: step.time, step: step.step })
+ return
+ case 'Resume':
+ preStep = step;
+ break;
+ case 'Findall':
+ preStep = { ...step, kind: 'Findall_TODO' }
+ break;
+ case 'CHR':
+ preStep = { ...step, kind: 'CHR_TODO' }
+ break;
+ case 'Init':
+ preStep = {
+ ...step,
+ goal: getGoalText(step.goalId, elaboration.goalText)
+ }
+ break;
+ case 'Cut':
+ preStep = {
+ kind: 'Cut',
+ goalId: step.goalId,
+ cuts: step.cut.map(c => ({
+ goalId: c.goalId,
+ goal: getGoalText(c.goalId, elaboration.goalText),
+ cutBranch: {
+ clause: c.clause,
+ loc: c.loc
+ }
+ }))
+ }
+ break;
+ case 'Suspend':
+ preStep = {
+ kind: 'Suspend',
+ goalId: step.goalId,
+ goal: getGoalText(step.goalId, elaboration.goalText),
+ siblingId: step.sibling,
+ sibling: getGoalText(step.sibling, elaboration.goalText),
+ stack: getStack(stepId, elaboration.stackFrames)
+ }
+ break
+ case 'Inference': {
+ let failed: Attempt[];
+ let successful: SuccessfulAttempt | null;
+
+ const mkSuccess = (rule: E.Rule, events: Event[], siblings: GoalId[]): SuccessfulAttempt => ({
+ attempt: { rule, events },
+ siblings: siblings.map(g => ({
+ goalId: g,
+ goal: getGoalText(g, elaboration.goalText)
+ })),
+ siblingsOutcome: siblings.every(
+ s => analysis.successful.has(s)
+ ) ? 'Success' : 'Fail'
+ });
+ const mkFailed = (attempts: E.Attempt[]): Attempt[] => attempts.map(a => ({
+ rule: {
+ kind: 'UserRule',
+ value: { ruleText: a.code, ruleLoc: a.loc }
+ },
+ events: a.events
+ }))
+
+ if (step.action.kind === 'Builtin') {
+ if (step.action.outcome.kind === 'Fail') {
+ failed = [{
+ rule: { kind: 'BuiltinRule', value: step.action.name },
+ events: step.action.events
+ }]
+ successful = null
+ } else if (step.action.outcome.kind === 'Success') {
+ successful = mkSuccess(
+ { kind: 'BuiltinRule', value: step.action.name },
+ step.action.events,
+ step.action.outcome.siblings
+ )
+ failed = []
+ } else {
+ throw new Unreachable(step.action.outcome)
+ }
+ } else if (step.action.kind === 'Backchain') {
+ if (step.action.outcome.kind === 'Fail') {
+ failed = mkFailed(step.action.trylist)
+ successful = null
+ } else if (step.action.outcome.kind === 'Success') {
+ const attempts = [...step.action.trylist];
+ const { loc, code, events } = attempts.pop()!;
+ successful = mkSuccess(
+ { kind: 'UserRule', value: { ruleText: code, ruleLoc: loc } },
+ events,
+ step.action.outcome.siblings,
+ )
+ failed = mkFailed(attempts)
+ } else {
+ throw new Unreachable(step.action.outcome)
+ }
+ } else {
+ throw new Unreachable(step.action);
+ }
+
+ const more = (ids?: StepId[]): StepIdx[] =>
+ ids?.filter(i => i.runtime === stepId.runtime && i.step > stepId.step)
+ .map(i => i.step) ?? [];
+ let moreFailed: StepIdx[] = [];
+ let moreSuccessful: StepIdx[] = [];
+ {
+ const attempts = analysis.attempts.get(step.goalId);
+ if (attempts) {
+ moreFailed = more(attempts.failing);
+ moreSuccessful = more(attempts.successful)
+ }
+ }
+ moreFailed.sort();
+ moreSuccessful.sort();
+ if (successful === null && moreSuccessful.length !== 0) {
+ throw new CardError(
+ 'A failed attempt may not have "more successful" attempts'
+ )
+ }
+ preStep = {
+ kind: 'Inference',
+ goalId: step.goalId,
+ goal: step.goal,
+ predicate: step.pred,
+ failed,
+ successful: successful ? {
+ current: successful,
+ more: moreSuccessful
+ } : null,
+ moreFailed,
+ stack: getStack(stepId, elaboration.stackFrames)
+ }
+ break;
+ }
+ default:
+ throw new Unreachable(step)
+ }
+
+ maxStepIdx = Math.max(maxStepIdx, stepId.step)
+ minRuntimeIdx = Math.min(minRuntimeIdx, stepId.runtime)
+ preCards.push({ timestamp, stepId, step: preStep })
+ })
+
+ // TODO: why is it okay only if there's exactly one old broken step?
+ if (broken.length !== 0) {
+ if (broken.length > 1 || broken[0]!.step < maxStepIdx) {
+ const { step, time } = broken[0]!;
+ throw new CardError(
+ `Input trace is broken since step_id ${step}, json object ${time}`
+ )
+ }
+ }
+
+ const toChrAttempt = (a: CHRAttempt): C.ChrAttempt => {
+ if (a.loc.kind !== 'File')
+ throw new CardError(`CHR attempt had a non-file location ${a.loc}`);
+ const conditionCards = preCards
+ .filter(p => contained(a.timestamp, p.timestamp))
+ .map(preCardToCard);
+ // TODO: catch this earlier?
+ if (conditionCards.length !== 0) {
+ const rid = conditionCards[0]?.runtime_id;
+ if (!conditionCards.every(c => c.runtime_id === rid)) {
+ throw new CardError(
+ 'All steps in a CHR attempt are expected to have the same runtime ID'
+ )
+ }
+ }
+ return {
+ chr_loc: a.loc.file,
+ chr_text: a.code,
+ chr_condition_cards: conditionCards
+ }
+ };
+
+ const toSuccessfulChrAttempt = (a: CHRAttempt): C.SuccessfulChrAttempt => {
+ const attempt = toChrAttempt(a);
+ return {
+ chr_attempt: attempt,
+ chr_removed_goals: a.removed,
+ chr_new_goals: a.resumed.map(g => ({
+ goal_id: g,
+ goal_text: getGoalText(g, elaboration.goalText)
+ }))
+ }
+ }
+
+ const inferenceColor = (rid: RuntimeId, { successful }: Inference): Color => {
+ if (!successful) {
+ return 'Red';
+ }
+ if (successful.current.siblingsOutcome === 'Success') {
+ if (successful.more.length === 0) {
+ return 'Green'
+ } else {
+ return 'YellowGreen'
+ }
+ }
+ if (successful.current.siblingsOutcome === 'Fail') {
+ if (successful.more.length === 0) {
+ return 'YellowRed';
+ } else {
+ const last = successful.more.at(-1);
+ const lastCard = preCards.find(c => c.stepId.runtime === rid && c.stepId.step === last)
+ if (!lastCard) {
+ throw new CardError(`Last successful sibling [${rid}, ${last}] does not have a card`);
+ }
+ if (lastCard.step.kind !== 'Inference') {
+ throw new CardError(`Last successful sibling [${rid}. ${last}] is not an inference`)
+ }
+ const lastColor = inferenceColor(rid, lastCard.step);
+ if (lastColor === 'Green') {
+ return 'YellowGreen'
+ }
+ if (lastColor === 'Red') {
+ return 'YellowRed'
+ }
+ return lastColor
+ }
+ }
+ throw new Unreachable(successful.current.siblingsOutcome)
+ }
+
+ const preCardToCard = ({ step, stepId }: PreCard): C.Card => {
+ const base = { step_id: stepId.step, runtime_id: stepId.runtime };
+ switch (step.kind) {
+ case 'Init':
+ return {
+ ...base,
+ step: { kind: 'Init', value: toGoal(step) },
+ color: { kind: 'Grey' }
+ }
+ case 'Resume':
+ return {
+ ...base,
+ step: { kind: 'Resume', value: step.value.map(toGoal) },
+ color: { kind: 'Grey' }
+ }
+ case 'Inference':
+ return {
+ ...base,
+ step: { kind: 'Inference', value: {
+ current_goal_id: step.goalId,
+ current_goal_text: step.goal,
+ current_goal_predicate: step.predicate,
+ failed_attempts: step.failed.map(toAttempt),
+ successful_attempts: step.successful ? [toSuccess(step.successful.current)] : [],
+ more_failing_attempts: step.moreFailed,
+ more_successful_attempts: step.successful?.more ?? [],
+ stack: step.stack.map(toFrame)
+ } },
+ color: toColor(inferenceColor(stepId.runtime, step))
+ }
+ case 'Suspend':
+ return {
+ ...base,
+ step: { kind: 'Suspend', value: {
+ suspend_goal_id: step.goalId,
+ suspend_goal_text: step.goal,
+ suspend_sibling: {
+ goal_id: step.siblingId,
+ goal_text: step.sibling
+ },
+ suspend_stack: step.stack.map(toFrame)
+ } },
+ color: { kind: 'Grey' }
+ }
+ case 'Cut':
+ return {
+ ...base,
+ step: { kind: 'Cut', value: {
+ cut_goal_id: step.goalId,
+ cut_victims: step.cuts.map(c => ({
+ cut_branch_for_goal: {
+ goal_id: c.goalId,
+ goal_text: c.goal
+ },
+ cut_branch: {
+ rule_text: c.cutBranch.clause,
+ rule_loc: toLoc(c.cutBranch.loc)
+ }
+ }))
+ } },
+ color: { kind: 'Grey' }
+ }
+ case 'CHR_TODO':
+ return {
+ ...base,
+ step: { kind: 'CHR', value: {
+ chr_failed_attempts: step.failed.map(toChrAttempt),
+ chr_successful_attempts: step.successful.map(toSuccessfulChrAttempt),
+ chr_store_before: step.storeBefore.map(toConstraint),
+ chr_store_after: step.storeAfter.map(toConstraint)
+ } },
+ color: { kind: 'Grey' }
+ }
+ case 'Findall_TODO': {
+ const innerCards = preCards
+ .filter(p => contained(step.timestamp, p.timestamp))
+ .map(preCardToCard);
+ const rid = innerCards[0]?.runtime_id;
+ // TODO: check this sooner
+ if (!innerCards.every(c => c.runtime_id === rid)) {
+ throw new CardError(
+ 'All steps in a findall run are expected to have the same runtime ID'
+ )
+ }
+ return {
+ ...base,
+ step: { kind: 'Findall', value: {
+ findall_goal_id: step.goalId,
+ findall_goal_text: step.goal,
+ findall_cards: innerCards,
+ findall_solution_text: step.result,
+ findall_stack: getStack(stepId, elaboration.stackFrames).map(toFrame)
+ } },
+ color: { kind: 'Green' }
+ }
+ }
+ default:
+ throw new Unreachable(step)
+ }
+ }
+
+ return preCards.filter(c => c.stepId.runtime === minRuntimeIdx).map(preCardToCard)
+}
diff --git a/src/trace_v1.atd b/src/shared/elaborator/trace_v1.atd
similarity index 100%
rename from src/trace_v1.atd
rename to src/shared/elaborator/trace_v1.atd
diff --git a/src/trace_v1.ts b/src/shared/elaborator/trace_v1.mts
similarity index 99%
rename from src/trace_v1.ts
rename to src/shared/elaborator/trace_v1.mts
index 7bf7fa8..053a424 100644
--- a/src/trace_v1.ts
+++ b/src/shared/elaborator/trace_v1.mts
@@ -7,6 +7,10 @@
// - 'readFoo': convert a JSON-compatible value into a TypeScript value
// of type 'Foo'.
+// eslint-disable-next-line @typescript-eslint/ban-ts-comment
+// @ts-nocheck
+/* tslint:disable */
+/* eslint-disable */
export type Item = {
kind: Kind[];
diff --git a/src/trace_v2.atd b/src/shared/elaborator/trace_v2.atd
similarity index 100%
rename from src/trace_v2.atd
rename to src/shared/elaborator/trace_v2.atd
diff --git a/src/trace_v2.ts b/src/shared/elaborator/trace_v2.mts
similarity index 100%
rename from src/trace_v2.ts
rename to src/shared/elaborator/trace_v2.mts
diff --git a/src/shared/elaborator/types.mts b/src/shared/elaborator/types.mts
new file mode 100644
index 0000000..25d8426
--- /dev/null
+++ b/src/shared/elaborator/types.mts
@@ -0,0 +1,78 @@
+import type { Item as Item1 } from './trace_v1.mjs';
+import type { Item as Item2 } from './trace_v2.mjs';
+export type { Item as Item1 } from './trace_v1.mjs';
+export type { Item as Item2 } from './trace_v2.mjs';
+import type StepMap from './StepMap.mts';
+
+export type V = { value: K };
+export type R = { kind: K } & Rec;
+
+export type StepIdx = number;
+export type RuntimeId = number;
+export type StepId = {
+ step: StepIdx,
+ runtime: RuntimeId
+}
+
+export type GoalId = number;
+
+export type Time = number;
+export type Timestamp = { start: Time; stop: Time };
+
+export type Timed = R & {
+ time: Time
+};
+
+export type Timestamped = R & {
+ timestamp: Timestamp
+}
+
+export type FileLocation = {
+ filename: string,
+ line: number,
+ column: number,
+ character: number
+}
+
+export type Location =
+ | R<'File', { file: FileLocation }>
+ | R<'Context', { step: StepIdx }>
+
+export type Constraint = {
+ id: GoalId,
+ text: string
+}
+
+export type Event =
+ // repr is a string representation, e.g. "A0 := X0"
+ | R<'Assign', { repr: string }>
+ | R<'Fail', { failedGoal: string }>
+ | R<'ResumeGoal', { goals: GoalId[] }>;
+
+export type Cut = {
+ goalId: GoalId,
+ loc: Location,
+ clause: string
+};
+
+export type CHRAttempt = {
+ loc: Location,
+ code: string,
+ events: Event[],
+ timestamp: Timestamp,
+ removed: GoalId[],
+ resumed: GoalId[]
+}
+
+// Note: some of the Map operations can be cleaner with the new API
+// available in Node 26
+
+export type GoalMap = Map;
+export type GoalSet = Set;
+
+export type RawStep1 = Timestamped<{ items: Timed<{ item : Item1 }>[]}>;
+export type RawStep2 = Timestamped<{ items: Timed<{ item : Item2 }>[]}>;
+
+export type ParsedTrace =
+ | R<'V1', V>>
+ | R<'V2', V>>;
diff --git a/src/shared/mainPage.mts b/src/shared/mainPage.mts
new file mode 100644
index 0000000..d38e5e3
--- /dev/null
+++ b/src/shared/mainPage.mts
@@ -0,0 +1,252 @@
+type StyleName =
+ | 'reset' | 'vscode'
+ | 'bulma' | 'divider' | 'tooltip' | 'quickview' | 'pageloader' | 'collapsible'
+ | 'mdicons'
+ | 'main';
+
+type ScriptName =
+ | 'jquery'
+ | 'vue'
+ | 'fuzz'
+ | 'quickview' | 'collapsible';
+
+type ImportName =
+ | 'shared';
+
+type ModuleName =
+ | 'main';
+
+export type MainConfig = {
+ styles: Record,
+ scripts: Record,
+ imports: Record,
+ modules: Record
+};
+
+export default (
+ { styles, scripts, imports, modules }: MainConfig,
+ contentCB: (body: string) => string
+) => `
+
+
+
+
+
+
+ ${Object.values(styles).map(style => ``).join('\n')}
+
+ Elpi Tracer
+
+
+ ${contentCB(`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Kind: {{ step.kind }}
+
+
+ Predicate: {{ step.goal_predicate }}
+ Entry point
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Step
+
+
+
+
+ Runtime
+
+
+
+
+
+
+ Goal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Computing trace
+
+
+
+
+ ${Object.values(scripts).map(s => ``).join('\n')}
+
+ ${Object.values(modules).map(m => ``).join('\n')}
+ `)}
+
+`
diff --git a/src/shared/tsconfig.json b/src/shared/tsconfig.json
new file mode 100644
index 0000000..b4f5201
--- /dev/null
+++ b/src/shared/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+ "module": "node18",
+ "rootDir": "../",
+ "outDir": "../../out"
+ },
+ "include": ["."]
+}
diff --git a/src/shared/unreachable.mts b/src/shared/unreachable.mts
new file mode 100644
index 0000000..3215712
--- /dev/null
+++ b/src/shared/unreachable.mts
@@ -0,0 +1,5 @@
+export default class Unreachable extends Error {
+ constructor(proof: never) {
+ super(`This code path was assumed to be unreachable, but object was not handled: ${proof}`)
+ }
+}
diff --git a/src/tests/elaborator.test.mts b/src/tests/elaborator.test.mts
new file mode 100644
index 0000000..be745b2
--- /dev/null
+++ b/src/tests/elaborator.test.mts
@@ -0,0 +1,65 @@
+import * as fs from 'node:fs/promises';
+import * as path from 'node:path';
+import { suite, test } from 'node:test';
+
+import * as E from '../shared/elaborator/index.mjs';
+// TODO: compare IR instead of the ATD format
+import { writeTrace } from '../shared/elaborator/trace_v2.mjs';
+
+// Relative to the output directory
+const testSources = path.join(import.meta.dirname, '../../src/tests/sources')
+
+const traces = [
+ 'trace_chr',
+ 'trace',
+ 'trace2',
+ 'trace3',
+ 'trace4',
+ 'trace_w',
+ 'trace_cut',
+ 'trace_findall',
+ 'trace_implication',
+ 'broken_trace1',
+].map(t => ({ source: t, target: `${t}.elab` }))
+
+const brokenTraces = [
+ {
+ source: 'broken_trace2',
+ validate: /Input trace is broken since step_id 217, json object 1857$/
+ }
+];
+
+function getTraceFile(name: string): string {
+ return path.join(testSources, `${name}.json`)
+}
+
+function getTrace(name: string): Promise {
+ return fs.readFile(getTraceFile(name), 'utf-8')
+}
+
+suite('Successful elaboration tests', () => {
+ traces.forEach(({ source, target }) => {
+ test(`Elaborate ${source}`, async t => {
+ const input = await getTrace(source);
+
+ const elaborated = E.elaborate(input);
+ t.assert.fileSnapshot(
+ elaborated,
+ getTraceFile(target),
+ { serializers: [
+ writeTrace,
+ v => JSON.stringify(v, undefined, 2)
+ ] }
+ )
+ })
+ })
+})
+
+suite('Failing elaboration tests', () => {
+ brokenTraces.forEach(({ source, validate }) => {
+ test(`Fail elaboration of ${source}`, async t => {
+ const input = await getTrace(source);
+ t.assert.throws(() => E.elaborate(input), validate)
+ })
+ })
+})
diff --git a/src/tests/sources/broken_trace1.elab.json b/src/tests/sources/broken_trace1.elab.json
new file mode 100644
index 0000000..432fe5e
--- /dev/null
+++ b/src/tests/sources/broken_trace1.elab.json
@@ -0,0 +1,384574 @@
+[
+ {
+ "step_id": 0,
+ "runtime_id": 8,
+ "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_id": 1121
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 1,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1122
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 2,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "main",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := _"
+ ],
+ [
+ "Assign",
+ "A1 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A2 := arity X1"
+ ]
+ ]
+ },
+ "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_id": 1124
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 3,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1123,
+ "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_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_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 596,
+ "column": 0,
+ "character": 140
+ }
+ ]
+ }
+ },
+ {
+ "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_id": 1122
+ },
+ "cut_branch": {
+ "rule_text": "(main _) :- (coq.error\n Usage: HB.instance Definition := T ...).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 600,
+ "column": 0,
+ "character": 368
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 4,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "with-attributes",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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) _)"
+ ]
+ ]
+ },
+ "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_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_id": 1128
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 5,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1125,
+ "current_goal_text": "attributes X2",
+ "current_goal_predicate": "attributes",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]) :- .",
+ "rule_loc": [
+ "Context",
+ 1
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X2 := [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]) :- .",
+ "rule_loc": [
+ "Context",
+ 1
+ ]
+ }
+ ],
+ "step_id": 5,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 6,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1129
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 7,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.parse-attributes",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]"
+ ],
+ [
+ "Assign",
+ "A1 := [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := X3"
+ ]
+ ]
+ },
+ "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_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_id": 1131
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1132
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 8,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att verbose bool"
+ ],
+ [
+ "Assign",
+ "A1 := [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, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X4 := [X5 | X6]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X5 = supported-attribute (att verbose bool)",
+ "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_id": 1134
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 9,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1133,
+ "current_goal_text": "X5 = supported-attribute (att verbose bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X5 := supported-attribute (att verbose bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 9,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 10,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att mathcomp bool"
+ ],
+ [
+ "Assign",
+ "A1 := [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, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X6 := [X7 | X8]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X7 = supported-attribute (att mathcomp bool)",
+ "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_id": 1136
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 11,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1135,
+ "current_goal_text": "X7 = supported-attribute (att mathcomp bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X7 := supported-attribute (att mathcomp bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 11,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 12,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att mathcomp.axiom string"
+ ],
+ [
+ "Assign",
+ "A1 := [att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X8 := [X9 | X10]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1138
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 13,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1137,
+ "current_goal_text": "X9 = supported-attribute (att mathcomp.axiom string)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X9 := supported-attribute (att mathcomp.axiom string)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 13,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 14,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att short.type string"
+ ],
+ [
+ "Assign",
+ "A1 := [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, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X10 := [X11 | X12]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1140
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 15,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1139,
+ "current_goal_text": "X11 = supported-attribute (att short.type string)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X11 := supported-attribute (att short.type string)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 15,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 16,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att short.pack string"
+ ],
+ [
+ "Assign",
+ "A1 := [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]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X12 := [X13 | X14]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1142
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 17,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1141,
+ "current_goal_text": "X13 = supported-attribute (att short.pack string)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X13 := supported-attribute (att short.pack string)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 17,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 18,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att infer attmap"
+ ],
+ [
+ "Assign",
+ "A1 := [att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X14 := [X15 | X16]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X15 = supported-attribute (att infer attmap)",
+ "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_id": 1144
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 19,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1143,
+ "current_goal_text": "X15 = supported-attribute (att infer attmap)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X15 := supported-attribute (att infer attmap)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 19,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 20,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att key string"
+ ],
+ [
+ "Assign",
+ "A1 := [att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X16 := [X17 | X18]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X17 = supported-attribute (att key string)",
+ "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_id": 1146
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 21,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1145,
+ "current_goal_text": "X17 = supported-attribute (att key string)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X17 := supported-attribute (att key string)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 21,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 22,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att arg_sort bool"
+ ],
+ [
+ "Assign",
+ "A1 := [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]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X18 := [X19 | X20]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X19 = supported-attribute (att arg_sort bool)",
+ "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_id": 1148
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 23,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1147,
+ "current_goal_text": "X19 = supported-attribute (att arg_sort bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X19 := supported-attribute (att arg_sort bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 23,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 24,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att log bool"
+ ],
+ [
+ "Assign",
+ "A1 := [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]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X20 := [X21 | X22]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X21 = supported-attribute (att log bool)",
+ "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_id": 1150
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 25,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1149,
+ "current_goal_text": "X21 = supported-attribute (att log bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X21 := supported-attribute (att log bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 25,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 26,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att log.raw bool"
+ ],
+ [
+ "Assign",
+ "A1 := [att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X22 := [X23 | X24]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X23 = supported-attribute (att log.raw bool)",
+ "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_id": 1152
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 27,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1151,
+ "current_goal_text": "X23 = supported-attribute (att log.raw bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X23 := supported-attribute (att log.raw bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 27,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 28,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att compress_coercions bool"
+ ],
+ [
+ "Assign",
+ "A1 := [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]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X24 := [X25 | X26]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1154
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 29,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1153,
+ "current_goal_text": "X25 = supported-attribute (att compress_coercions bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X25 := supported-attribute (att compress_coercions bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 29,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 30,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att export bool"
+ ],
+ [
+ "Assign",
+ "A1 := [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]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X26 := [X27 | X28]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X27 = supported-attribute (att export bool)",
+ "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_id": 1156
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 31,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1155,
+ "current_goal_text": "X27 = supported-attribute (att export bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X27 := supported-attribute (att export bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 31,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 32,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att skip string"
+ ],
+ [
+ "Assign",
+ "A1 := [att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X28 := [X29 | X30]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X29 = supported-attribute (att skip string)",
+ "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_id": 1158
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 33,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1157,
+ "current_goal_text": "X29 = supported-attribute (att skip string)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X29 := supported-attribute (att skip string)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 33,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 34,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att local bool"
+ ],
+ [
+ "Assign",
+ "A1 := [att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X30 := [X31 | X32]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X31 = supported-attribute (att local bool)",
+ "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_id": 1160
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 35,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1159,
+ "current_goal_text": "X31 = supported-attribute (att local bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X31 := supported-attribute (att local bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 35,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 36,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att fail bool"
+ ],
+ [
+ "Assign",
+ "A1 := [att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X32 := [X33 | X34]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X33 = supported-attribute (att fail bool)",
+ "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_id": 1162
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 37,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1161,
+ "current_goal_text": "X33 = supported-attribute (att fail bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X33 := supported-attribute (att fail bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 37,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 38,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att doc string"
+ ],
+ [
+ "Assign",
+ "A1 := [att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X34 := [X35 | X36]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X35 = supported-attribute (att doc string)",
+ "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_id": 1164
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 39,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1163,
+ "current_goal_text": "X35 = supported-attribute (att doc string)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X35 := supported-attribute (att doc string)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 39,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 40,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att primitive_class bool"
+ ],
+ [
+ "Assign",
+ "A1 := [att primitive bool, att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X36 := [X37 | X38]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1166
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 40,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 41,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1165,
+ "current_goal_text": "X37 = supported-attribute (att primitive_class bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X37 := supported-attribute (att primitive_class bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 41,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 40,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 42,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att primitive bool"
+ ],
+ [
+ "Assign",
+ "A1 := [att non_forgetful_inheritance bool, att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X38 := [X39 | X40]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X39 = supported-attribute (att primitive bool)",
+ "goal_id": 1167
+ },
+ {
+ "goal_text": "std.map [att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X40",
+ "goal_id": 1168
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 42,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 40,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 43,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1167,
+ "current_goal_text": "X39 = supported-attribute (att primitive bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X39 := supported-attribute (att primitive bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 43,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 42,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 40,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 44,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att non_forgetful_inheritance bool"
+ ],
+ [
+ "Assign",
+ "A1 := [att hnf bool]"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X40 := [X41 | X42]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1170
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 44,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 42,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 40,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 45,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1169,
+ "current_goal_text": "X41 = supported-attribute (att non_forgetful_inheritance bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X41 := supported-attribute (att non_forgetful_inheritance bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 45,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 44,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 42,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 40,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 46,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1170,
+ "current_goal_text": "std.map [att hnf bool] (c0 \\ c1 \\ c1 = supported-attribute c0) X42",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := att hnf bool"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"
+ ],
+ [
+ "Assign",
+ "X42 := [X43 | X44]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X43 = supported-attribute (att hnf bool)",
+ "goal_id": 1171
+ },
+ {
+ "goal_text": "std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44",
+ "goal_id": 1172
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 46,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 44,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 42,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 40,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 47,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1171,
+ "current_goal_text": "X43 = supported-attribute (att hnf bool)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X43 := supported-attribute (att hnf bool)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 47,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 46,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 44,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 42,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 40,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 48,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1172,
+ "current_goal_text": "std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X44 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "step_id": 48,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 46,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 44,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 42,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 40,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 38,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 36,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 34,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 32,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 30,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 28,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 26,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 24,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 22,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 20,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 18,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 16,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 14,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 12,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 10,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 8,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 49,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3",
+ "goal_id": 1173
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 50,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "parse-attributes.aux",
+ "failed_attempts": [
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := elpi.loc"
+ ],
+ [
+ "Fail",
+ "unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (node A1) | A2]"
+ ]
+ ]
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 637,
+ "column": 0,
+ "character": 27263
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := elpi.loc"
+ ],
+ [
+ "Fail",
+ "unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (node A1) | A2]"
+ ]
+ ]
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 641,
+ "column": 0,
+ "character": 27574
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := elpi.loc"
+ ],
+ [
+ "Fail",
+ "unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (node A1) | A2]"
+ ]
+ ]
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 646,
+ "column": 0,
+ "character": 27781
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := elpi.loc"
+ ],
+ [
+ "Fail",
+ "unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (leaf-str A1) | A2]"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 652,
+ "column": 0,
+ "character": 28097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := elpi.loc"
+ ],
+ [
+ "Assign",
+ "A1 := File \"(stdin)\", line 1, column 2, character 3:"
+ ],
+ [
+ "Assign",
+ "A2 := []"
+ ],
+ [
+ "Assign",
+ "A3 := "
+ ],
+ [
+ "Assign",
+ "A4 := X3"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1174
+ },
+ {
+ "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_id": 1176
+ },
+ {
+ "goal_text": "if (X46 = error X47) (coq.error X47) true",
+ "goal_id": 1177
+ },
+ {
+ "goal_text": "X3 = [get-option X45 File \"(stdin)\", line 1, column 2, character 3: | X48]",
+ "goal_id": 1178
+ },
+ {
+ "goal_text": "parse-attributes.aux [] X48",
+ "goal_id": 1179
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 51,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1174,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 52,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1175,
+ "current_goal_text": "if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)",
+ "current_goal_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := = "
+ ],
+ [
+ "Assign",
+ "A1 := X45 = elpi.loc"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": " = ",
+ "goal_id": 1180
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1181
+ },
+ {
+ "goal_text": "X45 = elpi.loc",
+ "goal_id": 1182
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 52,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 53,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1180,
+ "current_goal_text": " = ",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 53,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 52,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 54,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1181,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)",
+ "goal_id": 1175
+ },
+ "cut_branch": {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 55,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1182,
+ "current_goal_text": "X45 = elpi.loc",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X45 := elpi.loc"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 55,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 52,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 56,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.valid-loc-attribute",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 594,
+ "column": 0,
+ "character": 25390
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := elpi.loc"
+ ],
+ [
+ "Assign",
+ "A1 := File \"(stdin)\", line 1, column 2, character 3:"
+ ],
+ [
+ "Assign",
+ "A2 := X46"
+ ]
+ ]
+ },
+ "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_id": 1183
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 594,
+ "column": 0,
+ "character": 25390
+ }
+ ]
+ }
+ ],
+ "step_id": 56,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 57,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := supported-attribute (att elpi.loc loc)"
+ ],
+ [
+ "Assign",
+ "A1 := 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)"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "supported-attribute (att elpi.loc loc)",
+ "goal_id": 1184
+ },
+ {
+ "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_id": 1186
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 57,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 594,
+ "column": 0,
+ "character": 25390
+ }
+ ]
+ }
+ ],
+ "step_id": 56,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 58,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1184,
+ "current_goal_text": "supported-attribute (att elpi.loc loc)",
+ "current_goal_predicate": "supported-attribute",
+ "failed_attempts": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att verbose bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att verbose bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att mathcomp bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att mathcomp bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att mathcomp.axiom string)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att mathcomp.axiom string"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att short.type string)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att short.type string"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att short.pack string)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att short.pack string"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att infer attmap)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att infer attmap"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att key string)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att key string"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att arg_sort bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att arg_sort bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att log bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att log bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att log.raw bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att log.raw bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att compress_coercions bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att compress_coercions bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att export bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att export bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att skip string)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att skip string"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att local bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att local bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att fail bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att fail bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att doc string)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att doc string"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att primitive_class bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att primitive_class bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att primitive bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att primitive bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att non_forgetful_inheritance bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att non_forgetful_inheritance bool"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att hnf bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify att elpi.loc loc with att hnf bool"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att elpi.loc loc)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 573,
+ "column": 0,
+ "character": 24545
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(supported-attribute (att verbose bool)) :- .",
+ "rule_loc": [
+ "Context",
+ 49
+ ]
+ }
+ ],
+ "step_id": 58,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 57,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 594,
+ "column": 0,
+ "character": 25390
+ }
+ ]
+ }
+ ],
+ "step_id": 56,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 59,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1185,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "supported-attribute (att elpi.loc loc)",
+ "goal_id": 1184
+ },
+ "cut_branch": {
+ "rule_text": "(supported-attribute (att A0 string)) :- (rex_match ^elpi\\. A0).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 574,
+ "column": 0,
+ "character": 24587
+ }
+ ]
+ }
+ },
+ {
+ "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_id": 1183
+ },
+ "cut_branch": {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 60,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t"
+ ],
+ [
+ "Assign",
+ "A1 := X46 = ok"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t",
+ "goal_id": 1187
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1188
+ },
+ {
+ "goal_text": "X46 = ok",
+ "goal_id": 1189
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 60,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 57,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 594,
+ "column": 0,
+ "character": 25390
+ }
+ ]
+ }
+ ],
+ "step_id": 56,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 61,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1187,
+ "current_goal_text": "primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t",
+ "current_goal_predicate": "primitive?",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 373,
+ "column": 0,
+ "character": 8225
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := File \"(stdin)\", line 1, column 2, character 3:"
+ ],
+ [
+ "Assign",
+ "A1 := Loc.t"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "is_cdata File \"(stdin)\", line 1, column 2, character 3: (ctype Loc.t)",
+ "goal_id": 1190
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 373,
+ "column": 0,
+ "character": 8225
+ }
+ ]
+ }
+ ],
+ "step_id": 61,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 60,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 57,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 594,
+ "column": 0,
+ "character": 25390
+ }
+ ]
+ }
+ ],
+ "step_id": 56,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 62,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1190,
+ "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": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "is_cdata",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "ctype Loc.t = ctype Loc.t",
+ "goal_id": 1191
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "is_cdata",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 62,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 373,
+ "column": 0,
+ "character": 8225
+ }
+ ]
+ }
+ ],
+ "step_id": 61,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 60,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 57,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 594,
+ "column": 0,
+ "character": 25390
+ }
+ ]
+ }
+ ],
+ "step_id": 56,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 63,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1191,
+ "current_goal_text": "ctype Loc.t = ctype Loc.t",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 63,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "is_cdata",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 62,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 373,
+ "column": 0,
+ "character": 8225
+ }
+ ]
+ }
+ ],
+ "step_id": 61,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 60,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 57,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 594,
+ "column": 0,
+ "character": 25390
+ }
+ ]
+ }
+ ],
+ "step_id": 56,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 64,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1188,
+ "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_id": 1186
+ },
+ "cut_branch": {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 65,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1189,
+ "current_goal_text": "X46 = ok",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X46 := ok"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 65,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 60,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 57,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 594,
+ "column": 0,
+ "character": 25390
+ }
+ ]
+ }
+ ],
+ "step_id": 56,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 66,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1177,
+ "current_goal_text": "if (ok = error X47) (coq.error X47) true",
+ "current_goal_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := ok = error X47"
+ ],
+ [
+ "Assign",
+ "A1 := coq.error X47"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "ok = error X47",
+ "goal_id": 1192
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1193
+ },
+ {
+ "goal_text": "coq.error X47",
+ "goal_id": 1194
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 68
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 66,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 67,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1192,
+ "current_goal_text": "ok = error X47",
+ "current_goal_predicate": "=",
+ "failed_attempts": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify ok with error X47"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 67,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 66,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 68,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1177,
+ "current_goal_text": "if (ok = error X47) (coq.error X47) true",
+ "current_goal_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := true"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "true",
+ "goal_id": 1195
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 68,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 69,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1195,
+ "current_goal_text": "true",
+ "current_goal_predicate": "true",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "step_id": 69,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 68,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 70,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X3 := [get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3: | X48]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 70,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 71,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1179,
+ "current_goal_text": "parse-attributes.aux [] X48",
+ "current_goal_predicate": "parse-attributes.aux",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(parse-attributes.aux [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 636,
+ "column": 0,
+ "character": 27233
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X48 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(parse-attributes.aux [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 636,
+ "column": 0,
+ "character": 27233
+ }
+ ]
+ }
+ ],
+ "step_id": 71,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "Context",
+ 6
+ ]
+ }
+ ],
+ "step_id": 50,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 49,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 633,
+ "column": 0,
+ "character": 27114
+ }
+ ]
+ }
+ ],
+ "step_id": 7,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 6,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 72,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1132,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 73,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1127,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 74,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1196
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 75,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1198
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 76,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1197,
+ "current_goal_text": "save-docstring",
+ "current_goal_predicate": "save-docstring",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 81,
+ "column": 0,
+ "character": 2429
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true",
+ "goal_id": 1199
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 81,
+ "column": 0,
+ "character": 2429
+ }
+ ]
+ }
+ ],
+ "step_id": 76,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 77,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := get-option elpi.loc X52 , get-option doc X53"
+ ],
+ [
+ "Assign",
+ "A1 := acc-clause _ (docstring X52 X53)"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option elpi.loc X52 , get-option doc X53",
+ "goal_id": 1200
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1201
+ },
+ {
+ "goal_text": "acc-clause _ (docstring X52 X53)",
+ "goal_id": 1202
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 81
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 77,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 81,
+ "column": 0,
+ "character": 2429
+ }
+ ]
+ }
+ ],
+ "step_id": 76,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 78,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1200,
+ "current_goal_text": "get-option elpi.loc X52 , get-option doc X53",
+ "current_goal_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option elpi.loc X52",
+ "goal_id": 1203
+ },
+ {
+ "goal_text": "get-option doc X53",
+ "goal_id": 1204
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 78,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 77,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 81,
+ "column": 0,
+ "character": 2429
+ }
+ ]
+ }
+ ],
+ "step_id": 76,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 79,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1203,
+ "current_goal_text": "get-option elpi.loc X52",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .",
+ "rule_loc": [
+ "Context",
+ 74
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X52 := File \"(stdin)\", line 1, column 2, character 3:"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .",
+ "rule_loc": [
+ "Context",
+ 74
+ ]
+ }
+ ],
+ "step_id": 79,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 78,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 77,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 81,
+ "column": 0,
+ "character": 2429
+ }
+ ]
+ }
+ ],
+ "step_id": 76,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 80,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1204,
+ "current_goal_text": "get-option doc X53",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 78,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 77,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 81,
+ "column": 0,
+ "character": 2429
+ }
+ ]
+ }
+ ],
+ "step_id": 76,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 81,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := true"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "true",
+ "goal_id": 1205
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 81,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 81,
+ "column": 0,
+ "character": 2429
+ }
+ ]
+ }
+ ],
+ "step_id": 76,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 82,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1205,
+ "current_goal_text": "true",
+ "current_goal_predicate": "true",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "step_id": 82,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 81,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 81,
+ "column": 0,
+ "character": 2429
+ }
+ ]
+ }
+ ],
+ "step_id": 76,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 83,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "with-logging",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 267,
+ "column": 0,
+ "character": 10575
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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) _"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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
+ },
+ {
+ "goal_text": "get-option elpi.loc X55",
+ "goal_id": 1208
+ },
+ {
+ "goal_text": "loc.fields X55 X56 _ _ _ _",
+ "goal_id": 1209
+ },
+ {
+ "goal_text": "std.any->string X55 X57",
+ "goal_id": 1210
+ },
+ {
+ "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_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_id": 1216
+ },
+ {
+ "goal_text": "log.private.logger-close X61",
+ "goal_id": 1217
+ },
+ {
+ "goal_text": "std.intersperse coq.pp.spc X61 X62",
+ "goal_id": 1218
+ },
+ {
+ "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
+ },
+ {
+ "goal_text": "output X64 X63",
+ "goal_id": 1221
+ },
+ {
+ "goal_text": "close_out X64",
+ "goal_id": 1222
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 90,
+ 97
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 267,
+ "column": 0,
+ "character": 10575
+ }
+ ]
+ }
+ ],
+ "step_id": 83,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 84,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := get-option elpi.hb.log _ , X54 = tt"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option elpi.hb.log _ , X54 = tt",
+ "goal_id": 1223
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 87
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 84,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 267,
+ "column": 0,
+ "character": 10575
+ }
+ ]
+ }
+ ],
+ "step_id": 83,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 85,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1223,
+ "current_goal_text": "get-option elpi.hb.log _ , X54 = tt",
+ "current_goal_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option elpi.hb.log _",
+ "goal_id": 1224
+ },
+ {
+ "goal_text": "X54 = tt",
+ "goal_id": 1225
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 85,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 84,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 267,
+ "column": 0,
+ "character": 10575
+ }
+ ]
+ }
+ ],
+ "step_id": 83,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 86,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1224,
+ "current_goal_text": "get-option elpi.hb.log _",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 85,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 84,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 267,
+ "column": 0,
+ "character": 10575
+ }
+ ]
+ }
+ ],
+ "step_id": 83,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 87,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := get-option elpi.hb.log.raw _ , X54 = ff"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option elpi.hb.log.raw _ , X54 = ff",
+ "goal_id": 1226
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ ],
+ "step_id": 87,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 267,
+ "column": 0,
+ "character": 10575
+ }
+ ]
+ }
+ ],
+ "step_id": 83,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 88,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1226,
+ "current_goal_text": "get-option elpi.hb.log.raw _ , X54 = ff",
+ "current_goal_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option elpi.hb.log.raw _",
+ "goal_id": 1227
+ },
+ {
+ "goal_text": "X54 = ff",
+ "goal_id": 1228
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 88,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ ],
+ "step_id": 87,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 267,
+ "column": 0,
+ "character": 10575
+ }
+ ]
+ }
+ ],
+ "step_id": 83,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 89,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1227,
+ "current_goal_text": "get-option elpi.hb.log.raw _",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 88,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ ],
+ "step_id": 87,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 267,
+ "column": 0,
+ "character": 10575
+ }
+ ]
+ }
+ ],
+ "step_id": 83,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 90,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "with-logging",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 11151
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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) _"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1231
+ },
+ {
+ "goal_text": "log.private.logger-close X66",
+ "goal_id": 1232
+ },
+ {
+ "goal_text": "std.intersperse coq.pp.spc X66 X67",
+ "goal_id": 1233
+ },
+ {
+ "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
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 97
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 11151
+ }
+ ]
+ }
+ ],
+ "step_id": 90,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 91,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1229,
+ "current_goal_text": "get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff",
+ "current_goal_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := get-option log tt , X65 = tt"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option log tt , X65 = tt",
+ "goal_id": 1236
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 94
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 91,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 11151
+ }
+ ]
+ }
+ ],
+ "step_id": 90,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 92,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1236,
+ "current_goal_text": "get-option log tt , X65 = tt",
+ "current_goal_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option log tt",
+ "goal_id": 1237
+ },
+ {
+ "goal_text": "X65 = tt",
+ "goal_id": 1238
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 92,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 91,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 11151
+ }
+ ]
+ }
+ ],
+ "step_id": 90,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 93,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1237,
+ "current_goal_text": "get-option log tt",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 92,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 91,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 11151
+ }
+ ]
+ }
+ ],
+ "step_id": 90,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 94,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1229,
+ "current_goal_text": "get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff",
+ "current_goal_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := get-option log.raw tt , X65 = ff"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option log.raw tt , X65 = ff",
+ "goal_id": 1239
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ ],
+ "step_id": 94,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 11151
+ }
+ ]
+ }
+ ],
+ "step_id": 90,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 95,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1239,
+ "current_goal_text": "get-option log.raw tt , X65 = ff",
+ "current_goal_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option log.raw tt",
+ "goal_id": 1240
+ },
+ {
+ "goal_text": "X65 = ff",
+ "goal_id": 1241
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 95,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ ],
+ "step_id": 94,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 11151
+ }
+ ]
+ }
+ ],
+ "step_id": 90,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 96,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1240,
+ "current_goal_text": "get-option log.raw tt",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 95,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ ],
+ "step_id": 94,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 11151
+ }
+ ]
+ }
+ ],
+ "step_id": 90,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 97,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "with-logging",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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) _"
+ ]
+ ]
+ },
+ "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_id": 1242
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 98,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "instance.declare-const",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := _"
+ ],
+ [
+ "Assign",
+ "A1 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A2 := arity X1"
+ ]
+ ]
+ },
+ "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_id": 1243
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 99,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped"
+ ],
+ [
+ "Assign",
+ "A1 := [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) \n (X76 is hb_instance_ ^ X75)) (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, \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 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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1246
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 100,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1244,
+ "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": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.elaborate-arity-skeleton (arity X1) _ X69"
+ ],
+ [
+ "Assign",
+ "A1 := Definition type illtyped"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1249
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1250
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 101,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1247,
+ "current_goal_text": "coq.elaborate-arity-skeleton (arity X1) _ X69 X92",
+ "current_goal_predicate": "coq.elaborate-arity-skeleton",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 363,
+ "column": 0,
+ "character": 15598
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X1"
+ ],
+ [
+ "Assign",
+ "X69 := arity X94"
+ ],
+ [
+ "Assign",
+ "A3 := X92"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "coq.elaborate-ty-skeleton X1 X95 X94 X92",
+ "goal_id": 1251
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 363,
+ "column": 0,
+ "character": 15598
+ }
+ ]
+ }
+ ],
+ "step_id": 101,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 102,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1251,
+ "current_goal_text": "coq.elaborate-ty-skeleton X1 X95 X94 X92",
+ "current_goal_predicate": "coq.elaborate-ty-skeleton",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-ty-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "X95 = typ «interleave_context.403»",
+ "goal_id": 1252
+ },
+ {
+ "goal_text": "X94 = X96",
+ "goal_id": 1253
+ },
+ {
+ "goal_text": "declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)",
+ "goal_id": 1254
+ },
+ {
+ "goal_text": "X92 = ok",
+ "goal_id": 1255
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-ty-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 102,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 363,
+ "column": 0,
+ "character": 15598
+ }
+ ]
+ }
+ ],
+ "step_id": 101,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 103,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1252,
+ "current_goal_text": "X95 = typ «interleave_context.403»",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X95 := typ «interleave_context.403»"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 103,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-ty-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 102,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 363,
+ "column": 0,
+ "character": 15598
+ }
+ ]
+ }
+ ],
+ "step_id": 101,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 104,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1253,
+ "current_goal_text": "X94 = X96",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X94 := X96"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 104,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-ty-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 102,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 363,
+ "column": 0,
+ "character": 15598
+ }
+ ]
+ }
+ ],
+ "step_id": 101,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 105,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1254,
+ "current_goal_text": "declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)",
+ "current_goal_predicate": "declare-evar",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 163,
+ "column": 0,
+ "character": 6258
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := []"
+ ],
+ [
+ "Assign",
+ "A1 := X97"
+ ],
+ [
+ "Assign",
+ "A2 := sort (typ «interleave_context.403»)"
+ ],
+ [
+ "Assign",
+ "A3 := X96"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "declare_constraint\n (declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)) [\n X97]",
+ "goal_id": 1256
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 163,
+ "column": 0,
+ "character": 6258
+ }
+ ]
+ }
+ ],
+ "step_id": 105,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-ty-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 102,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 363,
+ "column": 0,
+ "character": 15598
+ }
+ ]
+ }
+ ],
+ "step_id": 101,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 106,
+ "runtime_id": 8,
+ "step": [
+ "Suspend",
+ {
+ "suspend_goal_id": 1256,
+ "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_id": 1257
+ },
+ "suspend_stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "suspend",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 106,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 163,
+ "column": 0,
+ "character": 6258
+ }
+ ]
+ }
+ ],
+ "step_id": 105,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-ty-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 102,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 363,
+ "column": 0,
+ "character": 15598
+ }
+ ]
+ }
+ ],
+ "step_id": 101,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 107,
+ "runtime_id": 8,
+ "step": [
+ "CHR",
+ {
+ "chr_failed_attempts": [],
+ "chr_successful_attempts": [
+ {
+ "chr_attempt": {
+ "chr_text": " \\ (declare-evar A0 A1 A2 A3) <=> (A0 => evar A1 A2 A3)",
+ "chr_loc": {
+ "filename": "coq-builtin.elpi",
+ "line": 178,
+ "column": 4,
+ "character": 6801
+ },
+ "chr_condition_cards": [
+ {
+ "step_id": 0,
+ "runtime_id": 9,
+ "step": [
+ "Init",
+ {
+ "goal_text": "true",
+ "goal_id": 1259
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 1,
+ "runtime_id": 9,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1259,
+ "current_goal_text": "true",
+ "current_goal_predicate": "true",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 9
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ }
+ ]
+ },
+ "chr_removed_goals": [
+ 1257
+ ],
+ "chr_new_goals": []
+ }
+ ],
+ "chr_store_before": [
+ {
+ "goal_text": " declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96) /* suspended on X97 */",
+ "goal_id": 1257
+ }
+ ],
+ "chr_store_after": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 108,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1260,
+ "current_goal_text": "_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96",
+ "current_goal_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "[] => evar X97 (sort (typ «interleave_context.403»)) X96",
+ "goal_id": 1261
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 109,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1261,
+ "current_goal_text": "[] => evar X97 (sort (typ «interleave_context.403»)) X96",
+ "current_goal_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "evar X97 (sort (typ «interleave_context.403»)) X96",
+ "goal_id": 1262
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 110,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1262,
+ "current_goal_text": "evar X97 (sort (typ «interleave_context.403»)) X96",
+ "current_goal_predicate": "evar",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X97"
+ ],
+ [
+ "Assign",
+ "A1 := sort (typ «interleave_context.403»)"
+ ],
+ [
+ "Assign",
+ "A2 := X96"
+ ]
+ ]
+ },
+ "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_id": 1264
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 110,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 111,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1263,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "evar X97 (sort (typ «interleave_context.403»)) X96",
+ "goal_id": 1262
+ },
+ "cut_branch": {
+ "rule_text": "(evar _ _ _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 197,
+ "column": 0,
+ "character": 7585
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 112,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := var X96"
+ ],
+ [
+ "Assign",
+ "A1 := declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) X96) [X97, X96]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1267
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 112,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 110,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 113,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1265,
+ "current_goal_text": "var X96",
+ "current_goal_predicate": "var",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "var",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "var",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 113,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 112,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 110,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 114,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1266,
+ "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_id": 1264
+ },
+ "cut_branch": {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 115,
+ "runtime_id": 8,
+ "step": [
+ "Suspend",
+ {
+ "suspend_goal_id": 1267,
+ "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
+ },
+ "suspend_stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "suspend",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 115,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 112,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 110,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 116,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1255,
+ "current_goal_text": "X92 = ok",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X92 := ok"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 116,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-ty-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 102,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 363,
+ "column": 0,
+ "character": 15598
+ }
+ ]
+ }
+ ],
+ "step_id": 101,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 117,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1248,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 41,
+ "column": 0,
+ "character": 1520
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 118,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := ok = ok"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "ok = ok",
+ "goal_id": 1269
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 118,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 119,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1269,
+ "current_goal_text": "ok = ok",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 119,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 118,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 100,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 120,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1250,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "X92 = ok ;\n X92 = error X93 , std.fatal-error-w-data Definition type illtyped X93",
+ "goal_id": 1249
+ },
+ "cut_branch": {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 121,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1245,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 122,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.arity->term (arity (X96)) X70"
+ ],
+ [
+ "Assign",
+ "A1 := [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) \n (X76 is hb_instance_ ^ X75)) (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, \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 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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "coq.arity->term (arity (X96)) X70",
+ "goal_id": 1270
+ },
+ {
+ "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_id": 1272
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 123,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1270,
+ "current_goal_text": "coq.arity->term (arity (X96)) X70",
+ "current_goal_predicate": "coq.arity->term",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.arity->term (arity A0) A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 371,
+ "column": 0,
+ "character": 15907
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X96"
+ ],
+ [
+ "Assign",
+ "X70 := X96"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.arity->term (arity A0) A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 371,
+ "column": 0,
+ "character": 15907
+ }
+ ]
+ }
+ ],
+ "step_id": 123,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 124,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1271,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 125,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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"
+ ],
+ [
+ "Assign",
+ "A1 := [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) \n (X76 is hb_instance_ ^ X75)) (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, \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 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]"
+ ]
+ ]
+ },
+ "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_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_id": 1275
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 126,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.assert-ok!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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"
+ ],
+ [
+ "Assign",
+ "A1 := Definition illtyped"
+ ]
+ ]
+ },
+ "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_id": 1276
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1277
+ },
+ {
+ "goal_text": "X98 = ok ; X98 = error X99 , std.fatal-error-w-data Definition illtyped X99",
+ "goal_id": 1278
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1279
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 126,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 127,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.elaborate-skeleton",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "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_id": 1281
+ },
+ {
+ "goal_text": "X98 = ok",
+ "goal_id": 1282
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 127,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 126,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 128,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1280,
+ "current_goal_text": "X96 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X96 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"
+ ],
+ [
+ "ResumeGoal",
+ [
+ 1268
+ ]
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 128,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 127,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 126,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 129,
+ "runtime_id": 8,
+ "step": [
+ "Resume",
+ [
+ {
+ "goal_text": "evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])",
+ "goal_id": 1268
+ }
+ ]
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 130,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "evar",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X97"
+ ],
+ [
+ "Assign",
+ "A1 := sort (typ «interleave_context.403»)"
+ ],
+ [
+ "Assign",
+ "A2 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"
+ ]
+ ]
+ },
+ "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_id": 1284
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 130,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "resume",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 129,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "suspend",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 115,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 112,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 110,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 131,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1283,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "evar X97 (sort (typ «interleave_context.403»)) X96",
+ "goal_id": 1268
+ },
+ "cut_branch": {
+ "rule_text": "(evar _ _ _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 197,
+ "column": 0,
+ "character": 7585
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 132,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"
+ ],
+ [
+ "Assign",
+ "A1 := 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»)]]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1287
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 134
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 132,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 130,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "resume",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 129,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "suspend",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 115,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 112,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 110,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 133,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1285,
+ "current_goal_text": "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])",
+ "current_goal_predicate": "var",
+ "failed_attempts": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "var",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "var",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 133,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 132,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 130,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "resume",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 129,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "suspend",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 115,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 112,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 110,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 134,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := true"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "true",
+ "goal_id": 1288
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 134,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 130,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "resume",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 129,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "suspend",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 115,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 112,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 110,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 135,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1288,
+ "current_goal_text": "true",
+ "current_goal_predicate": "true",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "step_id": 135,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 134,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 130,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "resume",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 129,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "suspend",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 115,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 112,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 193,
+ "column": 0,
+ "character": 7432
+ }
+ ]
+ }
+ ],
+ "step_id": 110,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 109,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 108,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 136,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X71 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 136,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 127,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 126,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 137,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1282,
+ "current_goal_text": "X98 = ok",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X98 := ok"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 137,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elaborate-skeleton",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 127,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 126,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 138,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1277,
+ "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_id": 1273
+ },
+ "cut_branch": {
+ "rule_text": "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 41,
+ "column": 0,
+ "character": 1520
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 139,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1278,
+ "current_goal_text": "ok = ok ; ok = error X99 , std.fatal-error-w-data Definition illtyped X99",
+ "current_goal_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := ok = ok"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "ok = ok",
+ "goal_id": 1289
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 139,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 126,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 140,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1289,
+ "current_goal_text": "ok = ok",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 140,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 139,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 126,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 141,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1279,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "X98 = ok ; X98 = error X99 , std.fatal-error-w-data Definition illtyped X99",
+ "goal_id": 1278
+ },
+ "cut_branch": {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 142,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1274,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 143,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := if\n (arity\n (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) \n (X76 is hb_instance_ ^ X75)) (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»), \n global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]) X73 X72))"
+ ],
+ [
+ "Assign",
+ "A1 := [std.assert! (coq.safe-dest-app X72 (global X77) X78) \n 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 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\n (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]"
+ ]
+ ]
+ },
+ "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_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_id": 1292
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 144,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])\n = arity X72"
+ ],
+ [
+ "Assign",
+ "A1 := 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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1295
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 144,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 145,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1293,
+ "current_goal_text": "arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X72 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 145,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 144,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 146,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1294,
+ "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_id": 1290
+ },
+ "cut_branch": {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 147,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "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_id": 1297
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 147,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 144,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 148,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1296,
+ "current_goal_text": "if-verbose (coq.say HB: skipping section opening)",
+ "current_goal_predicate": "if-verbose",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if-verbose A0) :- (get-option verbose tt), (!), A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 51,
+ "column": 0,
+ "character": 1529
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.say HB: skipping section opening"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option verbose tt",
+ "goal_id": 1298
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1299
+ },
+ {
+ "goal_text": "coq.say HB: skipping section opening",
+ "goal_id": 1300
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 150
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if-verbose A0) :- (get-option verbose tt), (!), A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 51,
+ "column": 0,
+ "character": 1529
+ }
+ ]
+ }
+ ],
+ "step_id": 148,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 147,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 144,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 149,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1298,
+ "current_goal_text": "get-option verbose tt",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if-verbose A0) :- (get-option verbose tt), (!), A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 51,
+ "column": 0,
+ "character": 1529
+ }
+ ]
+ }
+ ],
+ "step_id": 148,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 147,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 144,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 150,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1296,
+ "current_goal_text": "if-verbose (coq.say HB: skipping section opening)",
+ "current_goal_predicate": "if-verbose",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if-verbose _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 1576
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if-verbose _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 1576
+ }
+ ]
+ }
+ ],
+ "step_id": 150,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 147,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 144,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 151,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X73 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 151,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 147,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 144,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 152,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1291,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 153,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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"
+ ],
+ [
+ "Assign",
+ "A1 := [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 \n X86, 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\n (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]"
+ ]
+ ]
+ },
+ "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_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_id": 1303
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 154,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.assert!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"
+ ],
+ [
+ "Assign",
+ "A1 := The type of the instance is not a factory"
+ ]
+ ]
+ },
+ "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_id": 1304
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1305
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 154,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 155,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78",
+ "goal_id": 1306
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 155,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 154,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 156,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.safe-dest-app",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2783
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indt «IsSelfA'.axioms_»)"
+ ],
+ [
+ "Assign",
+ "A1 := [global (indt «nat»)]"
+ ],
+ [
+ "Assign",
+ "A2 := global X77"
+ ],
+ [
+ "Assign",
+ "A3 := X78"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1307
+ },
+ {
+ "goal_text": "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global X77) X100",
+ "goal_id": 1308
+ },
+ {
+ "goal_text": "std.append X100 [global (indt «nat»)] X78",
+ "goal_id": 1309
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2783
+ }
+ ]
+ }
+ ],
+ "step_id": 156,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 155,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 154,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 157,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1307,
+ "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_id": 1306
+ },
+ "cut_branch": {
+ "rule_text": "(coq.safe-dest-app A0 A0 []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2886
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 158,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1308,
+ "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": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.safe-dest-app A0 A0 []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2886
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indt «IsSelfA'.axioms_»)"
+ ],
+ [
+ "Assign",
+ "X77 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "X100 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.safe-dest-app A0 A0 []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2886
+ }
+ ]
+ }
+ ],
+ "step_id": 158,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2783
+ }
+ ]
+ }
+ ],
+ "step_id": 156,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 155,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 154,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 159,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1309,
+ "current_goal_text": "std.append [] [global (indt «nat»)] X78",
+ "current_goal_predicate": "std.append",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [] A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 81,
+ "column": 0,
+ "character": 2754
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := [global (indt «nat»)]"
+ ],
+ [
+ "Assign",
+ "X78 := [global (indt «nat»)]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [] A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 81,
+ "column": 0,
+ "character": 2754
+ }
+ ]
+ }
+ ],
+ "step_id": 159,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2783
+ }
+ ]
+ }
+ ],
+ "step_id": 156,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 155,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 154,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 160,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1305,
+ "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_id": 1304
+ },
+ "cut_branch": {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 161,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1302,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 162,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := factory-alias->gref (indt «IsSelfA'.axioms_») X79"
+ ],
+ [
+ "Assign",
+ "A1 := [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 \n X86, X87 = global (const X86), \n 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\n (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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1312
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 163,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1310,
+ "current_goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X79",
+ "current_goal_predicate": "factory-alias->gref",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2385
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "A1 := X79"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "phant-abbrev X79 (indt «IsSelfA'.axioms_») _",
+ "goal_id": 1313
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1314
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 165
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2385
+ }
+ ]
+ }
+ ],
+ "step_id": 163,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 164,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1313,
+ "current_goal_text": "phant-abbrev X79 (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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X79 := indt «HasA.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «HasA.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X79 := indc «HasA.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «HasA.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X79 := indt «HasB.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «HasB.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X79 := indc «HasB.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «HasB.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X79 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X79 := indc «IsSelfA.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X79 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X79 := indc «IsSelfA'.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_Build»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 164,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2385
+ }
+ ]
+ }
+ ],
+ "step_id": 163,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 165,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1310,
+ "current_goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X79",
+ "current_goal_predicate": "factory-alias->gref",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 75,
+ "column": 0,
+ "character": 2443
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "X79 := indt «IsSelfA'.axioms_»"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "phant-abbrev (indt «IsSelfA'.axioms_») _ _",
+ "goal_id": 1315
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1316
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 75,
+ "column": 0,
+ "character": 2443
+ }
+ ]
+ }
+ ],
+ "step_id": 165,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 166,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1315,
+ "current_goal_text": "phant-abbrev (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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 166,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 75,
+ "column": 0,
+ "character": 2443
+ }
+ ]
+ }
+ ],
+ "step_id": 165,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 167,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1316,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ },
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ },
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 168,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1311,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 169,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB"
+ ],
+ [
+ "Assign",
+ "A1 := [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 \n X86, X87 = global (const X86), \n 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 \n X89 X90, \n if\n (arity\n (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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1319
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 170,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.assert!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := factory-nparams (indt «IsSelfA'.axioms_») X80"
+ ],
+ [
+ "Assign",
+ "A1 := Not a factory synthesized by HB"
+ ]
+ ]
+ },
+ "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_id": 1320
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1321
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 170,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 171,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := factory-nparams (indt «IsSelfA'.axioms_») X80"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "factory-nparams (indt «IsSelfA'.axioms_») X80",
+ "goal_id": 1322
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 171,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 170,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 172,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1322,
+ "current_goal_text": "factory-nparams (indt «IsSelfA'.axioms_») X80",
+ "current_goal_predicate": "factory-nparams",
+ "failed_attempts": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «A.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «A.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «HasB.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «B.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «B.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «IsSelfA.axioms_») 0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «SelfA.axioms_») 0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «IsSelfA'.axioms_») 0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X80 := 0"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 172,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 171,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 170,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 173,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1321,
+ "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_id": 1320
+ },
+ "cut_branch": {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 174,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1318,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 175,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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"
+ ],
+ [
+ "Assign",
+ "A1 := [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 \n X86, X87 = global (const X86), \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 \n X89 X90, \n if\n (arity\n (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]"
+ ]
+ ]
+ },
+ "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_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_id": 1325
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 176,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "instance.private.hack-section-discharging",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 300,
+ "column": 0,
+ "character": 12925
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "X81 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "current-mode no-builder",
+ "goal_id": 1326
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1327
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 178,
+ 180
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 300,
+ "column": 0,
+ "character": 12925
+ }
+ ]
+ }
+ ],
+ "step_id": 176,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 177,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1326,
+ "current_goal_text": "current-mode no-builder",
+ "current_goal_predicate": "current-mode",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 300,
+ "column": 0,
+ "character": 12925
+ }
+ ]
+ }
+ ],
+ "step_id": 176,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 178,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "instance.private.hack-section-discharging",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 301,
+ "column": 0,
+ "character": 12985
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A1 := X81"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "current-mode (builder-from _ X101 _ _)",
+ "goal_id": 1328
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1329
+ },
+ {
+ "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_id": 1331
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 180
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 301,
+ "column": 0,
+ "character": 12985
+ }
+ ]
+ }
+ ],
+ "step_id": 178,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 179,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1328,
+ "current_goal_text": "current-mode (builder-from _ X101 _ _)",
+ "current_goal_predicate": "current-mode",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 301,
+ "column": 0,
+ "character": 12985
+ }
+ ]
+ }
+ ],
+ "step_id": 178,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 180,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "instance.private.hack-section-discharging",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.hack-section-discharging A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 304,
+ "column": 0,
+ "character": 13219
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "X81 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.hack-section-discharging A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 304,
+ "column": 0,
+ "character": 13219
+ }
+ ]
+ }
+ ],
+ "step_id": 180,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 181,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1324,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 182,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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"
+ ],
+ [
+ "Assign",
+ "A1 := [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 \n X86, X87 = global (const X86), \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 \n X89 X90, \n if\n (arity\n (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]"
+ ]
+ ]
+ },
+ "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_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_id": 1334
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 183,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "instance.private.optimize-body",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := «IsSelfA'.phant_Build»"
+ ],
+ [
+ "Assign",
+ "A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A2 := X82"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_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_id": 1338
+ },
+ {
+ "goal_text": "unwind X105 X106 X82",
+ "goal_id": 1339
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 184,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := phant-abbrev _ (const «IsSelfA'.phant_Build») _"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "phant-abbrev _ (const «IsSelfA'.phant_Build») _",
+ "goal_id": 1340
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 184,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 185,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1340,
+ "current_goal_text": "phant-abbrev _ (const «IsSelfA'.phant_Build») _",
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify const «IsSelfA'.phant_Build» with const «HasA.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify const «IsSelfA'.phant_Build» with const «HasA.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify const «IsSelfA'.phant_Build» with const «HasB.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify const «IsSelfA'.phant_Build» with const «HasB.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify const «IsSelfA'.phant_Build» with const «IsSelfA.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify const «IsSelfA'.phant_Build» with const «IsSelfA.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify const «IsSelfA'.phant_Build» with const «IsSelfA'.phant_axioms»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 185,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 184,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 186,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1336,
+ "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_id": 1335
+ },
+ "cut_branch": {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ },
+ {
+ "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_id": 1332
+ },
+ "cut_branch": {
+ "rule_text": "(instance.private.optimize-body A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 314,
+ "column": 0,
+ "character": 13706
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 187,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1337,
+ "current_goal_text": "coq.env.const «IsSelfA'.phant_Build» (some X104) _",
+ "current_goal_predicate": "coq.env.const",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.env.const",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1341
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.env.const",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 187,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 188,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X104 := 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]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 188,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.env.const",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 187,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 189,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "hd-beta",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0 \\\nfun `a` c0 c1 \\\n fun `b` (prod `_` c0 c2 \\ c0) c2 \\\n app [global (indc «IsSelfA'.Axioms_»), c0, c1, c2]"
+ ],
+ [
+ "Assign",
+ "A1 := global (indt «nat»)"
+ ],
+ [
+ "Assign",
+ "A2 := [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A3 := X105"
+ ],
+ [
+ "Assign",
+ "A4 := X106"
+ ]
+ ]
+ },
+ "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_id": 1343
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 189,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 190,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1342,
+ "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_id": 1338
+ },
+ "cut_branch": {
+ "rule_text": "(hd-beta A0 A1 A0 A1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 94,
+ "column": 0,
+ "character": 3551
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 191,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "hd-beta",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0 \\\nfun `b` (prod `_` (global (indt «nat»)) c1 \\ global (indt «nat»)) c1 \\\n app [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), c0, c1]"
+ ],
+ [
+ "Assign",
+ "A1 := global (indc «O»)"
+ ],
+ [
+ "Assign",
+ "A2 := [fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A3 := X105"
+ ],
+ [
+ "Assign",
+ "A4 := X106"
+ ]
+ ]
+ },
+ "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_id": 1345
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 191,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 189,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 192,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1344,
+ "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_id": 1343
+ },
+ "cut_branch": {
+ "rule_text": "(hd-beta A0 A1 A0 A1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 94,
+ "column": 0,
+ "character": 3551
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 193,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "hd-beta",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0 \\\napp\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), c0]"
+ ],
+ [
+ "Assign",
+ "A1 := fun `x` (global (indt «nat»)) c0 \\ c0"
+ ],
+ [
+ "Assign",
+ "A2 := []"
+ ],
+ [
+ "Assign",
+ "A3 := X105"
+ ],
+ [
+ "Assign",
+ "A4 := X106"
+ ]
+ ]
+ },
+ "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_id": 1347
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 193,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 191,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 189,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 194,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1346,
+ "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_id": 1345
+ },
+ "cut_branch": {
+ "rule_text": "(hd-beta A0 A1 A0 A1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 94,
+ "column": 0,
+ "character": 3551
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 195,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "hd-beta",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 92,
+ "column": 0,
+ "character": 3424
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indc «IsSelfA'.Axioms_»)"
+ ],
+ [
+ "Assign",
+ "A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A2 := []"
+ ],
+ [
+ "Assign",
+ "A3 := X105"
+ ],
+ [
+ "Assign",
+ "A4 := X106"
+ ]
+ ]
+ },
+ "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_id": 1349
+ },
+ {
+ "goal_text": "hd-beta (global (indc «IsSelfA'.Axioms_»)) X107 X105 X106",
+ "goal_id": 1350
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 92,
+ "column": 0,
+ "character": 3424
+ }
+ ]
+ }
+ ],
+ "step_id": 195,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 193,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 191,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 189,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 196,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1348,
+ "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_id": 1347
+ },
+ "cut_branch": {
+ "rule_text": "(hd-beta A0 A1 A0 A1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 94,
+ "column": 0,
+ "character": 3551
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 197,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.append",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indt «nat»)"
+ ],
+ [
+ "Assign",
+ "A1 := [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A2 := []"
+ ],
+ [
+ "Assign",
+ "X107 := [global (indt «nat») | X108]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "std.append [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] [] \n X108",
+ "goal_id": 1351
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "step_id": 197,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 92,
+ "column": 0,
+ "character": 3424
+ }
+ ]
+ }
+ ],
+ "step_id": 195,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 193,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 191,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 189,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 198,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1351,
+ "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": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indc «O»)"
+ ],
+ [
+ "Assign",
+ "A1 := [fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A2 := []"
+ ],
+ [
+ "Assign",
+ "X108 := [global (indc «O») | X109]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109",
+ "goal_id": 1352
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "step_id": 198,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "step_id": 197,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 92,
+ "column": 0,
+ "character": 3424
+ }
+ ]
+ }
+ ],
+ "step_id": 195,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 193,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 191,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 189,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 199,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1352,
+ "current_goal_text": "std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109",
+ "current_goal_predicate": "std.append",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := fun `x` (global (indt «nat»)) c0 \\ c0"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ],
+ [
+ "Assign",
+ "A2 := []"
+ ],
+ [
+ "Assign",
+ "X109 := [fun `x` (global (indt «nat»)) c0 \\ c0 | X110]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "std.append [] [] X110",
+ "goal_id": 1353
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "step_id": 199,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "step_id": 198,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "step_id": 197,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 92,
+ "column": 0,
+ "character": 3424
+ }
+ ]
+ }
+ ],
+ "step_id": 195,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 193,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 191,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 189,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 200,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1353,
+ "current_goal_text": "std.append [] [] X110",
+ "current_goal_predicate": "std.append",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [] A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 81,
+ "column": 0,
+ "character": 2754
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := []"
+ ],
+ [
+ "Assign",
+ "X110 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [] A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 81,
+ "column": 0,
+ "character": 2754
+ }
+ ]
+ }
+ ],
+ "step_id": 200,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "step_id": 199,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "step_id": 198,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 80,
+ "column": 0,
+ "character": 2711
+ }
+ ]
+ }
+ ],
+ "step_id": 197,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 92,
+ "column": 0,
+ "character": 3424
+ }
+ ]
+ }
+ ],
+ "step_id": 195,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 193,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 191,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 189,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 201,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "hd-beta",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta A0 A1 A0 A1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 94,
+ "column": 0,
+ "character": 3551
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indc «IsSelfA'.Axioms_»)"
+ ],
+ [
+ "Assign",
+ "A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "X105 := global (indc «IsSelfA'.Axioms_»)"
+ ],
+ [
+ "Assign",
+ "X106 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta A0 A1 A0 A1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 94,
+ "column": 0,
+ "character": 3551
+ }
+ ]
+ }
+ ],
+ "step_id": 201,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 92,
+ "column": 0,
+ "character": 3424
+ }
+ ]
+ }
+ ],
+ "step_id": 195,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 193,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 191,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 93,
+ "column": 0,
+ "character": 3492
+ }
+ ]
+ }
+ ],
+ "step_id": 189,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 202,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "unwind",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 22,
+ "column": 0,
+ "character": 758
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indc «IsSelfA'.Axioms_»)"
+ ],
+ [
+ "Assign",
+ "A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A2 := X82"
+ ]
+ ]
+ },
+ "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_id": 1354
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 22,
+ "column": 0,
+ "character": 758
+ }
+ ]
+ }
+ ],
+ "step_id": 202,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 203,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := var (global (indc «IsSelfA'.Axioms_»))"
+ ],
+ [
+ "Assign",
+ "A1 := coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "var (global (indc «IsSelfA'.Axioms_»))",
+ "goal_id": 1355
+ },
+ {
+ "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_id": 1357
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 205
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 203,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 22,
+ "column": 0,
+ "character": 758
+ }
+ ]
+ }
+ ],
+ "step_id": 202,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 204,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1355,
+ "current_goal_text": "var (global (indc «IsSelfA'.Axioms_»))",
+ "current_goal_predicate": "var",
+ "failed_attempts": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "var",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "var",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 204,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 203,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 22,
+ "column": 0,
+ "character": 758
+ }
+ ]
+ }
+ ],
+ "step_id": 202,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 205,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"
+ ]
+ ]
+ },
+ "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_id": 1358
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 205,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 22,
+ "column": 0,
+ "character": 758
+ }
+ ]
+ }
+ ],
+ "step_id": 202,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 206,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.mk-app",
+ "failed_attempts": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.mk-app A0 [] A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 77,
+ "column": 0,
+ "character": 2958
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indc «IsSelfA'.Axioms_»)"
+ ],
+ [
+ "Fail",
+ "match\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] with []"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.mk-app A0 A1 (app [A0 | A1])) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 81,
+ "column": 0,
+ "character": 3175
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indc «IsSelfA'.Axioms_»)"
+ ],
+ [
+ "Assign",
+ "A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "X82 := app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.mk-app A0 [] A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 77,
+ "column": 0,
+ "character": 2958
+ }
+ ]
+ }
+ ],
+ "step_id": 206,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 205,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/elpi-reduction.elpi",
+ "line": 22,
+ "column": 0,
+ "character": 758
+ }
+ ]
+ }
+ ],
+ "step_id": 202,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 309,
+ "column": 0,
+ "character": 13433
+ }
+ ]
+ }
+ ],
+ "step_id": 183,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 207,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1333,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 208,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)"
+ ],
+ [
+ "Assign",
+ "A1 := [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 \n X86, X87 = global (const X86), \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 \n X89 X90, \n if\n (arity\n (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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1361
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 209,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := _ = _"
+ ],
+ [
+ "Assign",
+ "A1 := , (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1364
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 210,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1362,
+ "current_goal_text": "_ = _",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 210,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 211,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1363,
+ "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_id": 1359
+ },
+ "cut_branch": {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 212,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1364,
+ "current_goal_text": ", (new_int X83) (std.any->string X83 X84) (X85 is HB_unnamed_factory_ ^ X84)",
+ "current_goal_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "new_int X83",
+ "goal_id": 1365
+ },
+ {
+ "goal_text": "std.any->string X83 X84",
+ "goal_id": 1366
+ },
+ {
+ "goal_text": "X85 is HB_unnamed_factory_ ^ X84",
+ "goal_id": 1367
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 212,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 213,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1365,
+ "current_goal_text": "new_int X83",
+ "current_goal_predicate": "new_int",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "new_int",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "X83 = 27",
+ "goal_id": 1368
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "new_int",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 213,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 212,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 214,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1368,
+ "current_goal_text": "X83 = 27",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X83 := 27"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 214,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "new_int",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 213,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 212,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 215,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1366,
+ "current_goal_text": "std.any->string 27 X84",
+ "current_goal_predicate": "std.any->string",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.any->string A0 A1) :- (term_to_string A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 275,
+ "column": 0,
+ "character": 9167
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 27"
+ ],
+ [
+ "Assign",
+ "A1 := X84"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "term_to_string 27 X84",
+ "goal_id": 1369
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.any->string A0 A1) :- (term_to_string A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 275,
+ "column": 0,
+ "character": 9167
+ }
+ ]
+ }
+ ],
+ "step_id": 215,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 212,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 216,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1369,
+ "current_goal_text": "term_to_string 27 X84",
+ "current_goal_predicate": "term_to_string",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "term_to_string",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "X84 = 27",
+ "goal_id": 1370
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "term_to_string",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 216,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.any->string A0 A1) :- (term_to_string A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 275,
+ "column": 0,
+ "character": 9167
+ }
+ ]
+ }
+ ],
+ "step_id": 215,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 212,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 217,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1370,
+ "current_goal_text": "X84 = 27",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X84 := 27"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 217,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "term_to_string",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 216,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.any->string A0 A1) :- (term_to_string A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 275,
+ "column": 0,
+ "character": 9167
+ }
+ ]
+ }
+ ],
+ "step_id": 215,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 212,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 218,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1367,
+ "current_goal_text": "X85 is HB_unnamed_factory_ ^ 27",
+ "current_goal_predicate": "is",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 is A1) :- (calc A1 A0).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 77,
+ "column": 0,
+ "character": 1165
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X85"
+ ],
+ [
+ "Assign",
+ "A1 := HB_unnamed_factory_ ^ 27"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "calc (HB_unnamed_factory_ ^ 27) X85",
+ "goal_id": 1371
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 is A1) :- (calc A1 A0).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 77,
+ "column": 0,
+ "character": 1165
+ }
+ ]
+ }
+ ],
+ "step_id": 218,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 212,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 219,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1371,
+ "current_goal_text": "calc (HB_unnamed_factory_ ^ 27) X85",
+ "current_goal_predicate": "calc",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "calc",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "X85 = HB_unnamed_factory_27",
+ "goal_id": 1372
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "calc",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 219,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 is A1) :- (calc A1 A0).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 77,
+ "column": 0,
+ "character": 1165
+ }
+ ]
+ }
+ ],
+ "step_id": 218,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 212,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 220,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1372,
+ "current_goal_text": "X85 = HB_unnamed_factory_27",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X85 := HB_unnamed_factory_27"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 220,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "calc",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 219,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 is A1) :- (calc A1 A0).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 77,
+ "column": 0,
+ "character": 1165
+ }
+ ]
+ }
+ ],
+ "step_id": 218,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 212,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 209,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 221,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1360,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 222,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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 \n X86"
+ ],
+ [
+ "Assign",
+ "A1 := [X87 = global (const X86), \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 \n X89 X90, \n if\n (arity\n (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]"
+ ]
+ ]
+ },
+ "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_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_id": 1375
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 223,
+ "runtime_id": 8,
+ "step": [
+ "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",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := HB_unnamed_factory_27"
+ ],
+ [
+ "Assign",
+ "A1 := app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"
+ ],
+ [
+ "Assign",
+ "A2 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"
+ ],
+ [
+ "Assign",
+ "A3 := ff"
+ ],
+ [
+ "Assign",
+ "A4 := X86"
+ ]
+ ]
+ },
+ "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_id": 1376
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 224,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := if\n (not\n (ground_term\n (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]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n 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]) \n X112) \n (coq.error HB: cannot infer some information in \n HB_unnamed_factory_27 : X111 := X112)) true"
+ ],
+ [
+ "Assign",
+ "A1 := [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 \n X86, log.coq.env.add-location (const X86), \n if\n (var\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some\n (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) [[]]]"
+ ]
+ ]
+ },
+ "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_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_id": 1379
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 225,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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]))"
+ ],
+ [
+ "Assign",
+ "A1 := ,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n 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]) \n X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 \n : X111 := X112)"
+ ]
+ ]
+ },
+ "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_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_id": 1382
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 231
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 225,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 226,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "not",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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])"
+ ]
+ ]
+ },
+ "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_id": 1383
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1384
+ },
+ {
+ "goal_text": "fail",
+ "goal_id": 1385
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "step_id": 226,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 225,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 227,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])",
+ "goal_id": 1386
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 227,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "step_id": 226,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 225,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 228,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1386,
+ "current_goal_text": "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])",
+ "current_goal_predicate": "ground_term",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "ground_term",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "ground_term",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 228,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 227,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "step_id": 226,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 225,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 229,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1384,
+ "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_id": 1383
+ },
+ "cut_branch": {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ },
+ {
+ "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_id": 1380
+ },
+ "cut_branch": {
+ "rule_text": "(not _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 54,
+ "column": 0,
+ "character": 631
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 230,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1385,
+ "current_goal_text": "fail",
+ "current_goal_predicate": "fail",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "step_id": 226,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 225,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 231,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := true"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "true",
+ "goal_id": 1387
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 231,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 232,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1387,
+ "current_goal_text": "true",
+ "current_goal_predicate": "true",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "step_id": 232,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 231,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 233,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1378,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 234,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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 \n X86"
+ ],
+ [
+ "Assign",
+ "A1 := [log.coq.env.add-location (const X86), \n if\n (var\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some\n (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) [[]]]"
+ ]
+ ]
+ },
+ "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_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_id": 1390
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 235,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.env.add-const",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.env.add-const",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "X86 = «HB_unnamed_factory_27»",
+ "goal_id": 1391
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.env.add-const",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 235,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 236,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1391,
+ "current_goal_text": "X86 = «HB_unnamed_factory_27»",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X86 := «HB_unnamed_factory_27»"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 236,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.env.add-const",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 235,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 237,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1389,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 238,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := log.coq.env.add-location (const «HB_unnamed_factory_27»)"
+ ],
+ [
+ "Assign",
+ "A1 := [if\n (var\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some\n (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») [[]]]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1394
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 239,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1392,
+ "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": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 21,
+ "column": 0,
+ "character": 831
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := const «HB_unnamed_factory_27»"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 21,
+ "column": 0,
+ "character": 831
+ }
+ ]
+ }
+ ],
+ "step_id": 239,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 240,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := get-option elpi.loc X114"
+ ],
+ [
+ "Assign",
+ "A1 := acc-clause library \n (decl-location (const «HB_unnamed_factory_27») X114)"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1398
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 240,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 21,
+ "column": 0,
+ "character": 831
+ }
+ ]
+ }
+ ],
+ "step_id": 239,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 241,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1396,
+ "current_goal_text": "get-option elpi.loc X114",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .",
+ "rule_loc": [
+ "Context",
+ 74
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X114 := File \"(stdin)\", line 1, column 2, character 3:"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .",
+ "rule_loc": [
+ "Context",
+ 74
+ ]
+ }
+ ],
+ "step_id": 241,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 240,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 21,
+ "column": 0,
+ "character": 831
+ }
+ ]
+ }
+ ],
+ "step_id": 239,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 242,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1397,
+ "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_id": 1395
+ },
+ "cut_branch": {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 243,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "acc-clause",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 75,
+ "column": 0,
+ "character": 2237
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := library"
+ ],
+ [
+ "Assign",
+ "A1 := decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:"
+ ]
+ ]
+ },
+ "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_id": 1399
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 75,
+ "column": 0,
+ "character": 2237
+ }
+ ]
+ }
+ ],
+ "step_id": 243,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 240,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 21,
+ "column": 0,
+ "character": 831
+ }
+ ]
+ }
+ ],
+ "step_id": 239,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 244,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.elpi.accumulate",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elpi.accumulate",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.elpi.accumulate",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 244,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 75,
+ "column": 0,
+ "character": 2237
+ }
+ ]
+ }
+ ],
+ "step_id": 243,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 240,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 21,
+ "column": 0,
+ "character": 831
+ }
+ ]
+ }
+ ],
+ "step_id": 239,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 245,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1393,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 246,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := if\n (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]))"
+ ],
+ [
+ "Assign",
+ "A1 := [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») [[]]]"
+ ]
+ ]
+ },
+ "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_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_id": 1402
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 247,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"
+ ],
+ [
+ "Assign",
+ "A1 := X113 = none"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])",
+ "goal_id": 1403
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1404
+ },
+ {
+ "goal_text": "X113 = none",
+ "goal_id": 1405
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 249
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 247,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 248,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1403,
+ "current_goal_text": "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])",
+ "current_goal_predicate": "var",
+ "failed_attempts": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "var",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "var",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 248,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 247,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 249,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])",
+ "goal_id": 1406
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 249,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 250,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1406,
+ "current_goal_text": "X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X113 := some\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 250,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 249,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 251,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1401,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 252,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some\n (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]))"
+ ],
+ [
+ "Assign",
+ "A1 := [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]"
+ ]
+ ]
+ },
+ "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_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_id": 1409
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 253,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "log.private.log-vernac",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 291,
+ "column": 0,
+ "character": 11441
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some\n (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])"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "log.private.logger X115 X116",
+ "goal_id": 1410
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1411
+ },
+ {
+ "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_id": 1413
+ },
+ {
+ "goal_text": "log.private.logger-extend X115 X118",
+ "goal_id": 1414
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 255
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 291,
+ "column": 0,
+ "character": 11441
+ }
+ ]
+ }
+ ],
+ "step_id": 253,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 254,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1410,
+ "current_goal_text": "log.private.logger X115 X116",
+ "current_goal_predicate": "log.private.logger",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 291,
+ "column": 0,
+ "character": 11441
+ }
+ ]
+ }
+ ],
+ "step_id": 253,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 255,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "log.private.log-vernac",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(log.private.log-vernac _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 294,
+ "column": 0,
+ "character": 11623
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(log.private.log-vernac _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 294,
+ "column": 0,
+ "character": 11623
+ }
+ ]
+ }
+ ],
+ "step_id": 255,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 256,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1408,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 257,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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
+ },
+ {
+ "goal_text": "std.do! []",
+ "goal_id": 1417
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 258,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]",
+ "goal_id": 1418
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 259,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1418,
+ "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": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := const «HB_unnamed_factory_27»"
+ ],
+ [
+ "Assign",
+ "A1 := [[]]"
+ ]
+ ]
+ },
+ "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_id": 1419
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 260,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"
+ ],
+ [
+ "Assign",
+ "A1 := [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\n (log.private.coq.vernac.implicit X119 X120 [[]]))]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1422
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 261,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1420,
+ "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",
+ {
+ "name": "coq.arguments.set-implicit",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.arguments.set-implicit",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 261,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 262,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1421,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 263,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := if (get-option coq:locality local) (X119 = tt) (X119 = ff)"
+ ],
+ [
+ "Assign",
+ "A1 := [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit X119 X120 [[]]))]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1425
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 264,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1423,
+ "current_goal_text": "if (get-option coq:locality local) (X119 = tt) (X119 = ff)",
+ "current_goal_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := get-option coq:locality local"
+ ],
+ [
+ "Assign",
+ "A1 := X119 = tt"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option coq:locality local",
+ "goal_id": 1426
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1427
+ },
+ {
+ "goal_text": "X119 = tt",
+ "goal_id": 1428
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 264,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 265,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1426,
+ "current_goal_text": "get-option coq:locality local",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(get-option coq:locality local) :- .",
+ "rule_loc": [
+ "Context",
+ 258
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(get-option coq:locality local) :- .",
+ "rule_loc": [
+ "Context",
+ 258
+ ]
+ }
+ ],
+ "step_id": 265,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 264,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 266,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1427,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "if (get-option coq:locality local) (X119 = tt) (X119 = ff)",
+ "goal_id": 1423
+ },
+ "cut_branch": {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 267,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1428,
+ "current_goal_text": "X119 = tt",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X119 := tt"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 267,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 264,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 268,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1424,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 269,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ]
+ ]
+ },
+ "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_id": 1429
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1430
+ },
+ {
+ "goal_text": "std.do! []",
+ "goal_id": 1431
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 269,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 270,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "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_id": 1433
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 270,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 269,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 271,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1432,
+ "current_goal_text": "coq.gref->id (const «HB_unnamed_factory_27») X120",
+ "current_goal_predicate": "coq.gref->id",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.gref->id",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "X120 = HB_unnamed_factory_27",
+ "goal_id": 1434
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.gref->id",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 271,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 270,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 269,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 272,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1434,
+ "current_goal_text": "X120 = HB_unnamed_factory_27",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X120 := HB_unnamed_factory_27"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 272,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.gref->id",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 271,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 270,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 269,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 273,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "log.private.log-vernac",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 291,
+ "column": 0,
+ "character": 11441
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "log.private.logger X121 X122",
+ "goal_id": 1435
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1436
+ },
+ {
+ "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_id": 1438
+ },
+ {
+ "goal_text": "log.private.logger-extend X121 X124",
+ "goal_id": 1439
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 275
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 291,
+ "column": 0,
+ "character": 11441
+ }
+ ]
+ }
+ ],
+ "step_id": 273,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 270,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 269,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 274,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1435,
+ "current_goal_text": "log.private.logger X121 X122",
+ "current_goal_predicate": "log.private.logger",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 291,
+ "column": 0,
+ "character": 11441
+ }
+ ]
+ }
+ ],
+ "step_id": 273,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 270,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 269,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 275,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "log.private.log-vernac",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(log.private.log-vernac _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 294,
+ "column": 0,
+ "character": 11623
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(log.private.log-vernac _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 294,
+ "column": 0,
+ "character": 11623
+ }
+ ]
+ }
+ ],
+ "step_id": 275,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 270,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 269,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 276,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1430,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 277,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1431,
+ "current_goal_text": "std.do! []",
+ "current_goal_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 255,
+ "column": 0,
+ "character": 8595
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 255,
+ "column": 0,
+ "character": 8595
+ }
+ ]
+ }
+ ],
+ "step_id": 277,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 269,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 263,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 260,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 592
+ }
+ ]
+ }
+ ],
+ "step_id": 259,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 258,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 278,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1416,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 279,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1417,
+ "current_goal_text": "std.do! []",
+ "current_goal_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 255,
+ "column": 0,
+ "character": 8595
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 255,
+ "column": 0,
+ "character": 8595
+ }
+ ]
+ }
+ ],
+ "step_id": 279,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 257,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 252,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 246,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 238,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 234,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 224,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 59,
+ "column": 0,
+ "character": 2355
+ }
+ ]
+ }
+ ],
+ "step_id": 223,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 280,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1374,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 281,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X87 = global (const «HB_unnamed_factory_27»)"
+ ],
+ [
+ "Assign",
+ "A1 := [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 \n X89 X90, \n if\n (arity\n (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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "X87 = global (const «HB_unnamed_factory_27»)",
+ "goal_id": 1440
+ },
+ {
+ "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_id": 1442
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 282,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1440,
+ "current_goal_text": "X87 = global (const «HB_unnamed_factory_27»)",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X87 := global (const «HB_unnamed_factory_27»)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 282,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 283,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1441,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 284,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := std.drop 0 [global (indt «nat»)] [X88 | _]"
+ ],
+ [
+ "Assign",
+ "A1 := [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\n (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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "std.drop 0 [global (indt «nat»)] [X88 | _]",
+ "goal_id": 1443
+ },
+ {
+ "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_id": 1445
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 285,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1443,
+ "current_goal_text": "std.drop 0 [global (indt «nat»)] [X88 | _]",
+ "current_goal_predicate": "std.drop",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.drop 0 A0 A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 99,
+ "column": 0,
+ "character": 3183
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := [global (indt «nat»)]"
+ ],
+ [
+ "Assign",
+ "X88 := global (indt «nat»)"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1446
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.drop 0 A0 A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 99,
+ "column": 0,
+ "character": 3183
+ }
+ ]
+ }
+ ],
+ "step_id": 285,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 286,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1446,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "std.drop 0 [global (indt «nat»)] [X88 | _]",
+ "goal_id": 1443
+ },
+ "cut_branch": {
+ "rule_text": "(std.drop A0 [_ | A1] A2) :- (!), (A3 is A0 - 1), (std.drop A3 A1 A2).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3200
+ }
+ ]
+ }
+ },
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "std.drop 0 [global (indt «nat»)] [X88 | _]",
+ "goal_id": 1443
+ },
+ "cut_branch": {
+ "rule_text": "(std.drop _ _ _) :- (std.fatal-error drop run out of list items).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 101,
+ "column": 0,
+ "character": 3249
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 287,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1444,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 288,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := instance.private.check-non-forgetful-inheritance\n (global (indt «nat»)) (indt «IsSelfA'.axioms_»)"
+ ],
+ [
+ "Assign",
+ "A1 := [instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) \n X89 X90, \n if\n (arity\n (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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1449
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 289,
+ "runtime_id": 8,
+ "step": [
+ "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",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 341,
+ "column": 0,
+ "character": 14872
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "get-option non_forgetful_inheritance tt",
+ "goal_id": 1450
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1451
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 291
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 341,
+ "column": 0,
+ "character": 14872
+ }
+ ]
+ }
+ ],
+ "step_id": 289,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 290,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1450,
+ "current_goal_text": "get-option non_forgetful_inheritance tt",
+ "current_goal_predicate": "get-option",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 341,
+ "column": 0,
+ "character": 14872
+ }
+ ]
+ }
+ ],
+ "step_id": 289,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 291,
+ "runtime_id": 8,
+ "step": [
+ "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",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 343,
+ "column": 0,
+ "character": 14959
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indt «nat»)"
+ ],
+ [
+ "Assign",
+ "A1 := indt «IsSelfA'.axioms_»"
+ ]
+ ]
+ },
+ "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_id": 1452
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 343,
+ "column": 0,
+ "character": 14959
+ }
+ ]
+ }
+ ],
+ "step_id": 291,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 292,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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 \n depend on 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"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ]
+ ]
+ },
+ "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_id": 1453
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1454
+ },
+ {
+ "goal_text": "std.do! []",
+ "goal_id": 1455
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 292,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 343,
+ "column": 0,
+ "character": 14959
+ }
+ ]
+ }
+ ],
+ "step_id": 291,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 293,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126"
+ ],
+ [
+ "Assign",
+ "A1 := , (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.)"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1458
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 296
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 293,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 292,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 343,
+ "column": 0,
+ "character": 14959
+ }
+ ]
+ }
+ ],
+ "step_id": 291,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 294,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _",
+ "goal_id": 1459
+ },
+ {
+ "goal_text": "structure-key X125 _ X126",
+ "goal_id": 1460
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 294,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 293,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 292,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 343,
+ "column": 0,
+ "character": 14959
+ }
+ ]
+ }
+ ],
+ "step_id": 291,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 295,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1459,
+ "current_goal_text": "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _",
+ "current_goal_predicate": "coq.safe-dest-app",
+ "failed_attempts": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.safe-dest-app A0 A0 []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2886
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indt «nat»)"
+ ],
+ [
+ "Fail",
+ "unify global (const X125) with global (indt «nat»)"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.safe-dest-app A0 A0 []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2886
+ }
+ ]
+ }
+ ],
+ "step_id": 295,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 294,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 293,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 292,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 343,
+ "column": 0,
+ "character": 14959
+ }
+ ]
+ }
+ ],
+ "step_id": 291,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 296,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := true"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "true",
+ "goal_id": 1461
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 296,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 292,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 343,
+ "column": 0,
+ "character": 14959
+ }
+ ]
+ }
+ ],
+ "step_id": 291,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 297,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1461,
+ "current_goal_text": "true",
+ "current_goal_predicate": "true",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "step_id": 297,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 296,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 292,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 343,
+ "column": 0,
+ "character": 14959
+ }
+ ]
+ }
+ ],
+ "step_id": 291,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 298,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1454,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 299,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1455,
+ "current_goal_text": "std.do! []",
+ "current_goal_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 255,
+ "column": 0,
+ "character": 8595
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 255,
+ "column": 0,
+ "character": 8595
+ }
+ ]
+ }
+ ],
+ "step_id": 299,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 292,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 343,
+ "column": 0,
+ "character": 14959
+ }
+ ]
+ }
+ ],
+ "step_id": 291,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 300,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1448,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 301,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) \n X89 X90"
+ ],
+ [
+ "Assign",
+ "A1 := [if\n (arity\n (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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1464
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 302,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "instance.private.declare-instance",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 188,
+ "column": 0,
+ "character": 8025
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "A1 := global (indt «nat»)"
+ ],
+ [
+ "Assign",
+ "A2 := global (const «HB_unnamed_factory_27»)"
+ ],
+ [
+ "Assign",
+ "A3 := X89"
+ ],
+ [
+ "Assign",
+ "A4 := X90"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_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_id": 1469
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 304
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 188,
+ "column": 0,
+ "character": 8025
+ }
+ ]
+ }
+ ],
+ "step_id": 302,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 303,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1465,
+ "current_goal_text": "current-mode (builder-from (global (indt «nat»)) X130 X131 _)",
+ "current_goal_predicate": "current-mode",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 188,
+ "column": 0,
+ "character": 8025
+ }
+ ]
+ }
+ ],
+ "step_id": 302,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 304,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "instance.private.declare-instance",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "A1 := global (indt «nat»)"
+ ],
+ [
+ "Assign",
+ "A2 := global (const «HB_unnamed_factory_27»)"
+ ],
+ [
+ "Assign",
+ "A3 := X89"
+ ],
+ [
+ "Assign",
+ "A4 := X90"
+ ]
+ ]
+ },
+ "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_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_id": 1471
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 305,
+ "runtime_id": 8,
+ "step": [
+ "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",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "A1 := global (indt «nat»)"
+ ],
+ [
+ "Assign",
+ "A2 := global (const «HB_unnamed_factory_27»)"
+ ],
+ [
+ "Assign",
+ "A3 := X90"
+ ]
+ ]
+ },
+ "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_id": 1472
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 306,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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!\n (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)]]"
+ ],
+ [
+ "Assign",
+ "A1 := [std.append X135 X137 X90]"
+ ]
+ ]
+ },
+ "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_id": 1473
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1474
+ },
+ {
+ "goal_text": "std.do! [std.append X135 X137 X90]",
+ "goal_id": 1475
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 307,
+ "runtime_id": 8,
+ "step": [
+ "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!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indt «nat»)"
+ ],
+ [
+ "Assign",
+ "A1 := global (const «HB_unnamed_factory_27»)"
+ ],
+ [
+ "Assign",
+ "A2 := [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)]]"
+ ]
+ ]
+ },
+ "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_id": 1476
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 308,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138"
+ ],
+ [
+ "Assign",
+ "A1 := [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!\n (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)]]]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1479
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 309,
+ "runtime_id": 8,
+ "step": [
+ "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",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := []"
+ ],
+ [
+ "Assign",
+ "A1 := global (const «HB_unnamed_factory_27»)"
+ ],
+ [
+ "Assign",
+ "A2 := X138"
+ ]
+ ]
+ },
+ "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_id": 1480
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 310,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped"
+ ],
+ [
+ "Assign",
+ "A1 := [if (not (coq.safe-dest-app X140 (global _) _)) \n (,\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)) \n true, 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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1483
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 311,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.assert-ok!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.typecheck (global (const «HB_unnamed_factory_27»)) X140"
+ ],
+ [
+ "Assign",
+ "A1 := mixin-src: X illtyped"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1486
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1487
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 311,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 312,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1484,
+ "current_goal_text": "coq.typecheck (global (const «HB_unnamed_factory_27»)) X140 X146",
+ "current_goal_predicate": "coq.typecheck",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.typecheck",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]",
+ "goal_id": 1488
+ },
+ {
+ "goal_text": "X146 = ok",
+ "goal_id": 1489
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.typecheck",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 312,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 311,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 313,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1488,
+ "current_goal_text": "X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X140 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 313,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.typecheck",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 312,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 311,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 314,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1489,
+ "current_goal_text": "X146 = ok",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X146 := ok"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 314,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.typecheck",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 312,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 311,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 315,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1485,
+ "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_id": 1481
+ },
+ "cut_branch": {
+ "rule_text": "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 41,
+ "column": 0,
+ "character": 1520
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 316,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := ok = ok"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "ok = ok",
+ "goal_id": 1490
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 316,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 311,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 317,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1490,
+ "current_goal_text": "ok = ok",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 317,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 316,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 311,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 318,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1487,
+ "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_id": 1486
+ },
+ "cut_branch": {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 319,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1482,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 320,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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»)]) \n X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) \n true"
+ ],
+ [
+ "Assign",
+ "A1 := [coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n X143, factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"
+ ]
+ ]
+ },
+ "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_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_id": 1493
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 321,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)"
+ ],
+ [
+ "Assign",
+ "A1 := , (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1496
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 329
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 321,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 322,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "not",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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
+ },
+ {
+ "goal_text": "fail",
+ "goal_id": 1499
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "step_id": 322,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 321,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 323,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.safe-dest-app",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2783
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indt «IsSelfA'.axioms_»)"
+ ],
+ [
+ "Assign",
+ "A1 := [global (indt «nat»)]"
+ ],
+ [
+ "Assign",
+ "A2 := global _"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1500
+ },
+ {
+ "goal_text": "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148",
+ "goal_id": 1501
+ },
+ {
+ "goal_text": "std.append X148 [global (indt «nat»)] X149",
+ "goal_id": 1502
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2783
+ }
+ ]
+ }
+ ],
+ "step_id": 323,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "step_id": 322,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 321,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 324,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1500,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _",
+ "goal_id": 1497
+ },
+ "cut_branch": {
+ "rule_text": "(coq.safe-dest-app A0 A0 []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2886
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 325,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1501,
+ "current_goal_text": "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148",
+ "current_goal_predicate": "coq.safe-dest-app",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.safe-dest-app A0 A0 []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2886
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indt «IsSelfA'.axioms_»)"
+ ],
+ [
+ "Assign",
+ "X148 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.safe-dest-app A0 A0 []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2886
+ }
+ ]
+ }
+ ],
+ "step_id": 325,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2783
+ }
+ ]
+ }
+ ],
+ "step_id": 323,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "step_id": 322,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 321,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 326,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1502,
+ "current_goal_text": "std.append [] [global (indt «nat»)] X149",
+ "current_goal_predicate": "std.append",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [] A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 81,
+ "column": 0,
+ "character": 2754
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := [global (indt «nat»)]"
+ ],
+ [
+ "Assign",
+ "X149 := [global (indt «nat»)]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.append [] A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 81,
+ "column": 0,
+ "character": 2754
+ }
+ ]
+ }
+ ],
+ "step_id": 326,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2783
+ }
+ ]
+ }
+ ],
+ "step_id": 323,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "step_id": 322,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 321,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 327,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1498,
+ "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_id": 1494
+ },
+ "cut_branch": {
+ "rule_text": "(not _) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 54,
+ "column": 0,
+ "character": 631
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 328,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1499,
+ "current_goal_text": "fail",
+ "current_goal_predicate": "fail",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(not A0) :- A0, (!), fail.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 52,
+ "column": 0,
+ "character": 609
+ }
+ ]
+ }
+ ],
+ "step_id": 322,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if A0 A1 _) :- A0, (!), A1.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 404,
+ "column": 0,
+ "character": 9190
+ }
+ ]
+ }
+ ],
+ "step_id": 321,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 329,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "if",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := true"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "true",
+ "goal_id": 1503
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 329,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 330,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1503,
+ "current_goal_text": "true",
+ "current_goal_predicate": "true",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "true :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 9,
+ "column": 0,
+ "character": 89
+ }
+ ]
+ }
+ ],
+ "step_id": 330,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(if _ _ A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 405,
+ "column": 0,
+ "character": 9211
+ }
+ ]
+ }
+ ],
+ "step_id": 329,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 331,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1492,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 332,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143"
+ ],
+ [
+ "Assign",
+ "A1 := [factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1506
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 333,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1504,
+ "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": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 431,
+ "column": 0,
+ "character": 18295
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (indt «IsSelfA'.axioms_»)"
+ ],
+ [
+ "Assign",
+ "A1 := X143"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1507
+ },
+ {
+ "goal_text": "coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143",
+ "goal_id": 1508
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 431,
+ "column": 0,
+ "character": 18295
+ }
+ ]
+ }
+ ],
+ "step_id": 333,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 334,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1507,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 433,
+ "column": 0,
+ "character": 18415
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 335,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1508,
+ "current_goal_text": "coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143",
+ "current_goal_predicate": "coq.term->gref",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.term->gref (global A0) A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 430,
+ "column": 0,
+ "character": 18259
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "X143 := indt «IsSelfA'.axioms_»"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1509
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.term->gref (global A0) A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 430,
+ "column": 0,
+ "character": 18259
+ }
+ ]
+ }
+ ],
+ "step_id": 335,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 431,
+ "column": 0,
+ "character": 18295
+ }
+ ]
+ }
+ ],
+ "step_id": 333,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 336,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1509,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 433,
+ "column": 0,
+ "character": 18415
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 337,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1505,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 338,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := factory-provides (indt «IsSelfA'.axioms_») X144"
+ ],
+ [
+ "Assign",
+ "A1 := [list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1512
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 339,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1510,
+ "current_goal_text": "factory-provides (indt «IsSelfA'.axioms_») X144",
+ "current_goal_predicate": "factory-provides",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "A1 := X144"
+ ]
+ ]
+ },
+ "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_id": 1513
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 340,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := factory-alias->gref (indt «IsSelfA'.axioms_») X150"
+ ],
+ [
+ "Assign",
+ "A1 := [gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1516
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 341,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1514,
+ "current_goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X150",
+ "current_goal_predicate": "factory-alias->gref",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2385
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "A1 := X150"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "phant-abbrev X150 (indt «IsSelfA'.axioms_») _",
+ "goal_id": 1517
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1518
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 343
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2385
+ }
+ ]
+ }
+ ],
+ "step_id": 341,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 342,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1517,
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X150 := indt «HasA.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «HasA.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X150 := indc «HasA.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «HasA.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X150 := indt «HasB.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «HasB.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X150 := indc «HasB.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «HasB.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X150 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X150 := indc «IsSelfA.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X150 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X150 := indc «IsSelfA'.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_Build»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 342,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2385
+ }
+ ]
+ }
+ ],
+ "step_id": 341,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 343,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1514,
+ "current_goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X150",
+ "current_goal_predicate": "factory-alias->gref",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 75,
+ "column": 0,
+ "character": 2443
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "X150 := indt «IsSelfA'.axioms_»"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "phant-abbrev (indt «IsSelfA'.axioms_») _ _",
+ "goal_id": 1519
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1520
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 75,
+ "column": 0,
+ "character": 2443
+ }
+ ]
+ }
+ ],
+ "step_id": 343,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 344,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1519,
+ "current_goal_text": "phant-abbrev (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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 344,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 75,
+ "column": 0,
+ "character": 2443
+ }
+ ]
+ }
+ ],
+ "step_id": 343,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 345,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1520,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ },
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ },
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 346,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1515,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 347,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := gref-deps (indt «IsSelfA'.axioms_») X151"
+ ],
+ [
+ "Assign",
+ "A1 := [w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) \n X144]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "gref-deps (indt «IsSelfA'.axioms_») X151",
+ "goal_id": 1521
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1522
+ },
+ {
+ "goal_text": "std.do!\n [w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]",
+ "goal_id": 1523
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 348,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1521,
+ "current_goal_text": "gref-deps (indt «IsSelfA'.axioms_») X151",
+ "current_goal_predicate": "gref-deps",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(gref-deps (indt «IsSelfA'.axioms_») \n (w-params.nil TheType (sort (typ «interleave_context.382»)) (c0 \\ []))) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X151 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(gref-deps (indt «IsSelfA'.axioms_») \n (w-params.nil TheType (sort (typ «interleave_context.382»)) (c0 \\ []))) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 348,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 349,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1522,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 350,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ]
+ ]
+ },
+ "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_id": 1524
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1525
+ },
+ {
+ "goal_text": "std.do! []",
+ "goal_id": 1526
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 351,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "w-params.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"
+ ],
+ [
+ "Assign",
+ "A1 := factory-provides.base (indt «IsSelfA'.axioms_»)"
+ ],
+ [
+ "Assign",
+ "A2 := X144"
+ ]
+ ]
+ },
+ "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_id": 1527
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 352,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "w-params.then",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"
+ ],
+ [
+ "Assign",
+ "A1 := mk-w-params.cons-name"
+ ],
+ [
+ "Assign",
+ "A2 := mk-w-params.nil-name"
+ ],
+ [
+ "Assign",
+ "A3 := factory-provides.base (indt «IsSelfA'.axioms_»)"
+ ],
+ [
+ "Assign",
+ "A4 := X144"
+ ]
+ ]
+ },
+ "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_id": 1528
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 353,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "w-params.fold",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"
+ ],
+ [
+ "Assign",
+ "A1 := mk-w-params.cons-name"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\nsigma 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"
+ ],
+ [
+ "Assign",
+ "A3 := X144"
+ ]
+ ]
+ },
+ "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_id": 1529
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 354,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "w-params.fold.params",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := TheType"
+ ],
+ [
+ "Assign",
+ "A1 := sort (typ «interleave_context.382»)"
+ ],
+ [
+ "Assign",
+ "A2 := c0 \\\n[]"
+ ],
+ [
+ "Assign",
+ "A3 := c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\nsigma 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"
+ ],
+ [
+ "Assign",
+ "A4 := []"
+ ],
+ [
+ "Assign",
+ "A5 := X144"
+ ]
+ ]
+ },
+ "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_id": 1531
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 355,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1530,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 356,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.id->name TheType X152"
+ ],
+ [
+ "Assign",
+ "A1 := [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 [] \n (c0 c1) ,\n mk-w-params.nil-name X152 (sort (typ «interleave_context.382»)) \n c0 X144]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1534
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 357,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1532,
+ "current_goal_text": "coq.id->name TheType X152",
+ "current_goal_predicate": "coq.id->name",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.id->name A0 A1) :- (coq.string->name A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 1296,
+ "column": 0,
+ "character": 51690
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := TheType"
+ ],
+ [
+ "Assign",
+ "A1 := X152"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "coq.string->name TheType X152",
+ "goal_id": 1535
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.id->name A0 A1) :- (coq.string->name A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 1296,
+ "column": 0,
+ "character": 51690
+ }
+ ]
+ }
+ ],
+ "step_id": 357,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 358,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1535,
+ "current_goal_text": "coq.string->name TheType X152",
+ "current_goal_predicate": "coq.string->name",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.string->name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "X152 = `TheType`",
+ "goal_id": 1536
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.string->name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 358,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.id->name A0 A1) :- (coq.string->name A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 1296,
+ "column": 0,
+ "character": 51690
+ }
+ ]
+ }
+ ],
+ "step_id": 357,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 359,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1536,
+ "current_goal_text": "X152 = `TheType`",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X152 := `TheType`"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 359,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.string->name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 358,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.id->name A0 A1) :- (coq.string->name A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "coq-builtin.elpi",
+ "line": 1296,
+ "column": 0,
+ "character": 51690
+ }
+ ]
+ }
+ ],
+ "step_id": 357,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 360,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1533,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 361,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := std.rev [] X153"
+ ],
+ [
+ "Assign",
+ "A1 := [sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] \n (c0 c1) ,\n mk-w-params.nil-name `TheType` \n (sort (typ «interleave_context.382»)) c0 X144]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1539
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 362,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1537,
+ "current_goal_text": "std.rev [] X153",
+ "current_goal_predicate": "std.rev",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.rev A0 A1) :- (std.rev.aux A0 [] A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 70,
+ "column": 0,
+ "character": 2457
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := []"
+ ],
+ [
+ "Assign",
+ "A1 := X153"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "std.rev.aux [] [] X153",
+ "goal_id": 1540
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.rev A0 A1) :- (std.rev.aux A0 [] A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 70,
+ "column": 0,
+ "character": 2457
+ }
+ ]
+ }
+ ],
+ "step_id": 362,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 363,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1540,
+ "current_goal_text": "std.rev.aux [] [] X153",
+ "current_goal_predicate": "std.rev.aux",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.rev.aux [] A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2534
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := []"
+ ],
+ [
+ "Assign",
+ "X153 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.rev.aux [] A0 A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 72,
+ "column": 0,
+ "character": 2534
+ }
+ ]
+ }
+ ],
+ "step_id": 363,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.rev A0 A1) :- (std.rev.aux A0 [] A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 70,
+ "column": 0,
+ "character": 2457
+ }
+ ]
+ }
+ ],
+ "step_id": 362,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 364,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1538,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 365,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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` \n (sort (typ «interleave_context.382»)) c0 X144"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ]
+ ]
+ },
+ "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_id": 1541
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1542
+ },
+ {
+ "goal_text": "std.do! []",
+ "goal_id": 1543
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 366,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "sigma",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1544
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 367,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1545
+ },
+ {
+ "goal_text": "mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) X154 \n X144",
+ "goal_id": 1546
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 368,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "pi",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)",
+ "goal_id": 1547
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 369,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)",
+ "goal_id": 1548
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 370,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1548,
+ "current_goal_text": "factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)",
+ "current_goal_predicate": "factory-provides.base",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ],
+ [
+ "Assign",
+ "A2 := c0"
+ ],
+ [
+ "Assign",
+ "A3 := X154 c0"
+ ]
+ ]
+ },
+ "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_id": 1549
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 371,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"
+ ],
+ [
+ "Assign",
+ "A1 := [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)]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1552
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 372,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1550,
+ "current_goal_text": "std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1",
+ "current_goal_predicate": "std.findall",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := from (indt «IsSelfA'.axioms_») X155^1 X156^1"
+ ],
+ [
+ "Assign",
+ "A1 := X157^1"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1",
+ "goal_id": 1553
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "step_id": 372,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 373,
+ "runtime_id": 8,
+ "step": [
+ "Findall",
+ {
+ "findall_goal_id": 1553,
+ "findall_goal_text": "findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1",
+ "findall_cards": [
+ {
+ "step_id": 0,
+ "runtime_id": 10,
+ "step": [
+ "Init",
+ {
+ "goal_text": "from (indt «IsSelfA'.axioms_») X0^1 X1^1",
+ "goal_id": 1555
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 1,
+ "runtime_id": 10,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1555,
+ "current_goal_text": "from (indt «IsSelfA'.axioms_») X0^1 X1^1",
+ "current_goal_predicate": "from",
+ "failed_attempts": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «HasA.axioms_») (indt «HasA.axioms_») \n (const «HasA.identity_builder»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «A.axioms_») (indt «HasA.axioms_») \n (const «A.interleave_context_HasA_mixin»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «A.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «HasB.axioms_») (indt «HasB.axioms_») \n (const «HasB.identity_builder»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «B.axioms_») (indt «HasB.axioms_») \n (const «B.interleave_context_HasB_mixin»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «B.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «IsSelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «IsSelfA.identity_builder»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «SelfA.axioms_») (indt «HasA.axioms_») \n (const «SelfA.interleave_context_HasA_mixin»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «SelfA.axioms_») (indt «HasB.axioms_») \n (const «SelfA.interleave_context_HasB_mixin»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «SelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «SelfA.interleave_context_IsSelfA_mixin»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X0^1 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Assign",
+ "X1^1 := const «Builders_18.HB_unnamed_factory_24»"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [
+ 2,
+ 3
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «HasA.axioms_») (indt «HasA.axioms_») \n (const «HasA.identity_builder»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 10
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 2,
+ "runtime_id": 10,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1555,
+ "current_goal_text": "from (indt «IsSelfA'.axioms_») X0^1 X1^1",
+ "current_goal_predicate": "from",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X0^1 := indt «HasB.axioms_»"
+ ],
+ [
+ "Assign",
+ "X1^1 := const «Builders_18.HB_unnamed_factory_22»"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [
+ 3
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 10
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 3,
+ "runtime_id": 10,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1555,
+ "current_goal_text": "from (indt «IsSelfA'.axioms_») X0^1 X1^1",
+ "current_goal_predicate": "from",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X0^1 := indt «HasA.axioms_»"
+ ],
+ [
+ "Assign",
+ "X1^1 := const «Builders_18.HB_unnamed_factory_20»"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 3,
+ "runtime_id": 10
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ }
+ ],
+ "findall_solution_text": [
+ "X157^1 := [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»)]"
+ ],
+ "findall_stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "findall",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 373,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "step_id": 372,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 374,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1551,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 375,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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"
+ ],
+ [
+ "Assign",
+ "A1 := [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)]"
+ ]
+ ]
+ },
+ "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_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_id": 1558
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 376,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)"
+ ],
+ [
+ "Assign",
+ "A1 := [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»)]"
+ ],
+ [
+ "Assign",
+ "A2 := from_mixin"
+ ],
+ [
+ "Assign",
+ "X158^1 := [X160^1 | X161^1]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1560
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 376,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 377,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "from_mixin",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_mixin (from _ A0 _) A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 12,
+ "column": 0,
+ "character": 414
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Assign",
+ "X160^1 := indt «IsSelfA.axioms_»"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_mixin (from _ A0 _) A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 12,
+ "column": 0,
+ "character": 414
+ }
+ ]
+ }
+ ],
+ "step_id": 377,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 376,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 378,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)"
+ ],
+ [
+ "Assign",
+ "A1 := [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)]"
+ ],
+ [
+ "Assign",
+ "A2 := from_mixin"
+ ],
+ [
+ "Assign",
+ "X161^1 := [X162^1 | X163^1]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1562
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 378,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 376,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 379,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "from_mixin",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_mixin (from _ A0 _) A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 12,
+ "column": 0,
+ "character": 414
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «HasB.axioms_»"
+ ],
+ [
+ "Assign",
+ "X162^1 := indt «HasB.axioms_»"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_mixin (from _ A0 _) A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 12,
+ "column": 0,
+ "character": 414
+ }
+ ]
+ }
+ ],
+ "step_id": 379,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 378,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 376,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 380,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ],
+ [
+ "Assign",
+ "A2 := from_mixin"
+ ],
+ [
+ "Assign",
+ "X163^1 := [X164^1 | X165^1]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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
+ },
+ {
+ "goal_text": "std.map [] from_mixin X165^1",
+ "goal_id": 1564
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 380,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 378,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 376,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 381,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "from_mixin",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_mixin (from _ A0 _) A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 12,
+ "column": 0,
+ "character": 414
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «HasA.axioms_»"
+ ],
+ [
+ "Assign",
+ "X164^1 := indt «HasA.axioms_»"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_mixin (from _ A0 _) A0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 12,
+ "column": 0,
+ "character": 414
+ }
+ ]
+ }
+ ],
+ "step_id": 381,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 380,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 378,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 376,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 382,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1564,
+ "current_goal_text": "std.map [] from_mixin X165^1",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X165^1 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "step_id": 382,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 380,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 378,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 376,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 383,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1557,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 384,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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"
+ ],
+ [
+ "Assign",
+ "A1 := [std.map2 X159^1 \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», \n indt «HasA.axioms_»] (factory-provides.one [] c0) (X154 c0)]"
+ ]
+ ]
+ },
+ "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_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_id": 1567
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 385,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)"
+ ],
+ [
+ "Assign",
+ "A1 := [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»)]"
+ ],
+ [
+ "Assign",
+ "A2 := from_builder"
+ ],
+ [
+ "Assign",
+ "X159^1 := [X166^1 | X167^1]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1569
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 385,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 386,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "from_builder",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_builder (from _ _ A0) (global A0)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 15,
+ "column": 0,
+ "character": 476
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := const «Builders_18.HB_unnamed_factory_24»"
+ ],
+ [
+ "Assign",
+ "X166^1 := global (const «Builders_18.HB_unnamed_factory_24»)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_builder (from _ _ A0) (global A0)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 15,
+ "column": 0,
+ "character": 476
+ }
+ ]
+ }
+ ],
+ "step_id": 386,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 385,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 387,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)"
+ ],
+ [
+ "Assign",
+ "A1 := [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)]"
+ ],
+ [
+ "Assign",
+ "A2 := from_builder"
+ ],
+ [
+ "Assign",
+ "X167^1 := [X168^1 | X169^1]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1571
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 387,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 385,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 388,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "from_builder",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_builder (from _ _ A0) (global A0)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 15,
+ "column": 0,
+ "character": 476
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := const «Builders_18.HB_unnamed_factory_22»"
+ ],
+ [
+ "Assign",
+ "X168^1 := global (const «Builders_18.HB_unnamed_factory_22»)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_builder (from _ _ A0) (global A0)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 15,
+ "column": 0,
+ "character": 476
+ }
+ ]
+ }
+ ],
+ "step_id": 388,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 387,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 385,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 389,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ],
+ [
+ "Assign",
+ "A2 := from_builder"
+ ],
+ [
+ "Assign",
+ "X169^1 := [X170^1 | X171^1]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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
+ },
+ {
+ "goal_text": "std.map [] from_builder X171^1",
+ "goal_id": 1573
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 389,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 387,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 385,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 390,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "from_builder",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_builder (from _ _ A0) (global A0)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 15,
+ "column": 0,
+ "character": 476
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := const «Builders_18.HB_unnamed_factory_20»"
+ ],
+ [
+ "Assign",
+ "X170^1 := global (const «Builders_18.HB_unnamed_factory_20»)"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(from_builder (from _ _ A0) (global A0)) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 15,
+ "column": 0,
+ "character": 476
+ }
+ ]
+ }
+ ],
+ "step_id": 390,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 389,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 387,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 385,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 391,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1573,
+ "current_goal_text": "std.map [] from_builder X171^1",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X171^1 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "step_id": 391,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 389,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 387,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 385,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 392,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1566,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 393,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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_», \n indt «HasA.axioms_»] (factory-provides.one [] c0) (X154 c0)"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ]
+ ]
+ },
+ "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_id": 1574
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1575
+ },
+ {
+ "goal_text": "std.do! []",
+ "goal_id": 1576
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 394,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map2",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (const «Builders_18.HB_unnamed_factory_24»)"
+ ],
+ [
+ "Assign",
+ "A1 := [global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)]"
+ ],
+ [
+ "Assign",
+ "A2 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Assign",
+ "A3 := [indt «HasB.axioms_», indt «HasA.axioms_»]"
+ ],
+ [
+ "Assign",
+ "A4 := factory-provides.one [] c0"
+ ],
+ [
+ "Assign",
+ "X154 := c0 \\\nX172 c0"
+ ],
+ [
+ "Assign",
+ "X172^1 := [X173^1 | X174^1]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1578
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowRed"
+ },
+ {
+ "step_id": 395,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "factory-provides.one",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := []"
+ ],
+ [
+ "Assign",
+ "A1 := c0"
+ ],
+ [
+ "Assign",
+ "A2 := global (const «Builders_18.HB_unnamed_factory_24»)"
+ ],
+ [
+ "Assign",
+ "A3 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Assign",
+ "X173^1 := triple (indt «IsSelfA.axioms_») X175^1 c0"
+ ]
+ ]
+ },
+ "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_id": 1579
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 396,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1) Builder illtyped"
+ ],
+ [
+ "Assign",
+ "A1 := [(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]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1582
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 397,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.assert-ok!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1"
+ ],
+ [
+ "Assign",
+ "A1 := Builder illtyped"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1585
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1586
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 397,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 398,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.typecheck",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.typecheck",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1587
+ },
+ {
+ "goal_text": "X179^1 = ok",
+ "goal_id": 1588
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.typecheck",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 398,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 397,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 399,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X176^1 := 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\n [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app\n [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 399,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.typecheck",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 398,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 397,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 400,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1588,
+ "current_goal_text": "X179^1 = ok",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X179^1 := ok"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 400,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "coq.typecheck",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 398,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 397,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 401,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1584,
+ "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_id": 1580
+ },
+ "cut_branch": {
+ "rule_text": "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 41,
+ "column": 0,
+ "character": 1520
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 402,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := ok = ok"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "ok = ok",
+ "goal_id": 1589
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 402,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 397,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 403,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1589,
+ "current_goal_text": "ok = ok",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 403,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 402,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 40,
+ "column": 0,
+ "character": 1406
+ }
+ ]
+ }
+ ],
+ "step_id": 397,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 404,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1586,
+ "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_id": 1585
+ },
+ "cut_branch": {
+ "rule_text": "(_ ; A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 30,
+ "column": 0,
+ "character": 311
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 405,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1581,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 406,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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\n [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app\n [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1 , coq.subst-prod [c0] X177^1 X178^1"
+ ],
+ [
+ "Assign",
+ "A1 := [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]"
+ ]
+ ]
+ },
+ "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_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_id": 1592
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 407,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ",",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1593
+ },
+ {
+ "goal_text": "coq.subst-prod [c0] X177^1 X178^1",
+ "goal_id": 1594
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 407,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 408,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.subst-prod",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.subst-prod [] A0 A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 36,
+ "column": 0,
+ "character": 1340
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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]]"
+ ],
+ [
+ "Assign",
+ "X177^1 := 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\n [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app\n [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1595
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.subst-prod [] A0 A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 36,
+ "column": 0,
+ "character": 1340
+ }
+ ]
+ }
+ ],
+ "step_id": 408,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 407,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 409,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1595,
+ "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_id": 1593
+ },
+ "cut_branch": {
+ "rule_text": "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 38,
+ "column": 0,
+ "character": 1438
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 410,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.subst-prod",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 37,
+ "column": 0,
+ "character": 1368
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ],
+ [
+ "Assign",
+ "A2 := c1 \\\nprod `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]]"
+ ],
+ [
+ "Assign",
+ "A3 := X178^1"
+ ]
+ ]
+ },
+ "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_id": 1597
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 37,
+ "column": 0,
+ "character": 1368
+ }
+ ]
+ }
+ ],
+ "step_id": 410,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 407,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 411,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1596,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "coq.subst-prod [c0] X177^1 X178^1",
+ "goal_id": 1594
+ },
+ "cut_branch": {
+ "rule_text": "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 38,
+ "column": 0,
+ "character": 1438
+ }
+ ]
+ }
+ },
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "coq.subst-prod [c0] X177^1 X178^1",
+ "goal_id": 1594
+ },
+ "cut_branch": {
+ "rule_text": "(coq.subst-prod [_ | _] A0 _) :- (!), \n (std.fatal-error-w-data subst-prod: not a product A0).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 39,
+ "column": 0,
+ "character": 1505
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 412,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "coq.subst-prod",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.subst-prod [] A0 A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 36,
+ "column": 0,
+ "character": 1340
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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]]"
+ ],
+ [
+ "Assign",
+ "X178^1 := prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app\n [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app\n [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1598
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.subst-prod [] A0 A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 36,
+ "column": 0,
+ "character": 1340
+ }
+ ]
+ }
+ ],
+ "step_id": 412,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 37,
+ "column": 0,
+ "character": 1368
+ }
+ ]
+ }
+ ],
+ "step_id": 410,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 407,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 413,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1598,
+ "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_id": 1597
+ },
+ "cut_branch": {
+ "rule_text": "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 38,
+ "column": 0,
+ "character": 1438
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 414,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1591,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 415,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.do!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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\n [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app\n [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"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ]
+ ]
+ },
+ "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_id": 1599
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1600
+ },
+ {
+ "goal_text": "std.do! []",
+ "goal_id": 1601
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 416,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.assert!",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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"
+ ],
+ [
+ "Assign",
+ "A1 := The conclusion of a builder is a mixin whose parameters depend on other mixins"
+ ]
+ ]
+ },
+ "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_id": 1602
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1603
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 417,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": ";",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := 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"
+ ]
+ ]
+ },
+ "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_id": 1604
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 418,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "extract-conclusion-params",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := app [global (const «IsSelfA'.phant_axioms»), c0]"
+ ],
+ [
+ "Assign",
+ "A2 := c1 \\\napp\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]]"
+ ],
+ [
+ "Assign",
+ "A3 := X175^1"
+ ]
+ ]
+ },
+ "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_id": 1606
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 419,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1605,
+ "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_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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 117,
+ "column": 0,
+ "character": 4090
+ }
+ ]
+ }
+ },
+ {
+ "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_id": 1604
+ },
+ "cut_branch": {
+ "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",
+ "line": 122,
+ "column": 0,
+ "character": 4303
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 420,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "pi",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1607
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 421,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "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_id": 1608
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 422,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "extract-conclusion-params",
+ "failed_attempts": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Fail",
+ "match\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]] with\n prod _ A1 A2"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 117,
+ "column": 0,
+ "character": 4090
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Assign",
+ "A2 := [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]]"
+ ],
+ [
+ "Assign",
+ "A3 := X175^1"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1609
+ },
+ {
+ "goal_text": "factory-alias->gref (indt «IsSelfA.axioms_») X181^2",
+ "goal_id": 1610
+ },
+ {
+ "goal_text": "factory-nparams X181^2 X182^2",
+ "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_id": 1612
+ },
+ {
+ "goal_text": "std.spy (std.take X182^2 X183^2 X175^1)",
+ "goal_id": 1613
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 423,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1609,
+ "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_id": 1608
+ },
+ "cut_branch": {
+ "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",
+ "line": 122,
+ "column": 0,
+ "character": 4303
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 424,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1610,
+ "current_goal_text": "factory-alias->gref (indt «IsSelfA.axioms_») X181^2",
+ "current_goal_predicate": "factory-alias->gref",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2385
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Assign",
+ "A1 := X181^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "phant-abbrev X181^2 (indt «IsSelfA.axioms_») _",
+ "goal_id": 1614
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1615
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 426
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2385
+ }
+ ]
+ }
+ ],
+ "step_id": 424,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 425,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1614,
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X181^2 := indt «HasA.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with const «HasA.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X181^2 := indc «HasA.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with const «HasA.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X181^2 := indt «HasB.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with const «HasB.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X181^2 := indc «HasB.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with const «HasB.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X181^2 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with const «IsSelfA.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X181^2 := indc «IsSelfA.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with const «IsSelfA.phant_Build»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X181^2 := indt «IsSelfA'.axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with const «IsSelfA'.phant_axioms»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X181^2 := indc «IsSelfA'.Axioms_»"
+ ],
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with const «IsSelfA'.phant_Build»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 425,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 74,
+ "column": 0,
+ "character": 2385
+ }
+ ]
+ }
+ ],
+ "step_id": 424,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 426,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1610,
+ "current_goal_text": "factory-alias->gref (indt «IsSelfA.axioms_») X181^2",
+ "current_goal_predicate": "factory-alias->gref",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 75,
+ "column": 0,
+ "character": 2443
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := indt «IsSelfA.axioms_»"
+ ],
+ [
+ "Assign",
+ "X181^2 := indt «IsSelfA.axioms_»"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "phant-abbrev (indt «IsSelfA.axioms_») _ _",
+ "goal_id": 1616
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1617
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 75,
+ "column": 0,
+ "character": 2443
+ }
+ ]
+ }
+ ],
+ "step_id": 426,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 427,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1616,
+ "current_goal_text": "phant-abbrev (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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with indt «HasA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with indt «HasB.axioms_»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 427,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 75,
+ "column": 0,
+ "character": 2443
+ }
+ ]
+ }
+ ],
+ "step_id": 426,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 428,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1617,
+ "cut_victims": [
+ {
+ "cut_branch_for_goal": {
+ "goal_text": "phant-abbrev (indt «IsSelfA.axioms_») _ _",
+ "goal_id": 1616
+ },
+ "cut_branch": {
+ "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ },
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ },
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ },
+ {
+ "cut_branch_for_goal": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 429,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1611,
+ "current_goal_text": "factory-nparams (indt «IsSelfA.axioms_») X182^2",
+ "current_goal_predicate": "factory-nparams",
+ "failed_attempts": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with indt «HasA.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «A.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with indt «A.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «HasB.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with indt «HasB.axioms_»"
+ ]
+ ]
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «B.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Fail",
+ "unify indt «IsSelfA.axioms_» with indt «B.axioms_»"
+ ]
+ ]
+ }
+ ],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «IsSelfA.axioms_») 0) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X182^2 := 0"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "(elpi.add_clause)",
+ "line": 1,
+ "column": 0,
+ "character": 0
+ }
+ ]
+ }
+ ],
+ "step_id": 429,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 430,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := [app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]"
+ ],
+ [
+ "Assign",
+ "A2 := copy-pack-holes c0"
+ ],
+ [
+ "Assign",
+ "X183^2 := [X184^2 | X185^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "copy-pack-holes c0 c0 X184^2",
+ "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_id": 1619
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 431,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1618,
+ "current_goal_text": "copy-pack-holes c0 c0 X184^2",
+ "current_goal_predicate": "copy-pack-holes",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := c0"
+ ],
+ [
+ "Assign",
+ "A2 := X184^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "findall-local-canonical X186^2",
+ "goal_id": 1620
+ },
+ {
+ "goal_text": "coq.copy-clauses-for-unfold X186^2 X187^2",
+ "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_id": 1622
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 432,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1620,
+ "current_goal_text": "findall-local-canonical X186^2",
+ "current_goal_predicate": "findall-local-canonical",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X186^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "std.findall (local-canonical X189^2) X190^2",
+ "goal_id": 1623
+ },
+ {
+ "goal_text": "std.map X190^2 local-canonical-gref X186^2",
+ "goal_id": 1624
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 432,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 433,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1623,
+ "current_goal_text": "std.findall (local-canonical X189^2) X190^2",
+ "current_goal_predicate": "std.findall",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := local-canonical X189^2"
+ ],
+ [
+ "Assign",
+ "A1 := X190^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "findall_solutions (local-canonical X189^2) X190^2",
+ "goal_id": 1625
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "step_id": 433,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 432,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 434,
+ "runtime_id": 8,
+ "step": [
+ "Findall",
+ {
+ "findall_goal_id": 1625,
+ "findall_goal_text": "findall_solutions (local-canonical X189^2) X190^2",
+ "findall_cards": [
+ {
+ "step_id": 0,
+ "runtime_id": 11,
+ "step": [
+ "Init",
+ {
+ "goal_text": "local-canonical X0^2",
+ "goal_id": 1627
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 1,
+ "runtime_id": 11,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1627,
+ "current_goal_text": "local-canonical X0^2",
+ "current_goal_predicate": "local-canonical",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": []
+ }
+ ],
+ "color": "Red"
+ }
+ ],
+ "findall_solution_text": [
+ "X190^2 := []"
+ ],
+ "findall_stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "findall",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 434,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "step_id": 433,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 432,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 435,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1624,
+ "current_goal_text": "std.map [] local-canonical-gref X186^2",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X186^2 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "step_id": 435,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 432,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 436,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1621,
+ "current_goal_text": "coq.copy-clauses-for-unfold [] X187^2",
+ "current_goal_predicate": "coq.copy-clauses-for-unfold",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.copy-clauses-for-unfold [] []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 7411
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X187^2 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.copy-clauses-for-unfold [] []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 7411
+ }
+ ]
+ }
+ ],
+ "step_id": 436,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 437,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "copy c0 X184^2",
+ "goal_id": 1628
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 437,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 438,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1628,
+ "current_goal_text": "copy c0 X184^2",
+ "current_goal_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := X184^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "name c0",
+ "goal_id": 1629
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1630
+ },
+ {
+ "goal_text": "c0 = X184^2",
+ "goal_id": 1631
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1632
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 438,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 437,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 439,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1629,
+ "current_goal_text": "name c0",
+ "current_goal_predicate": "name",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "c0 = c0",
+ "goal_id": 1633
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 439,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 438,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 437,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 440,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1633,
+ "current_goal_text": "c0 = c0",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 440,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 439,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 438,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 437,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 441,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1630,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 442,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1631,
+ "current_goal_text": "c0 = X184^2",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X184 c0 c1 := c0"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 442,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 438,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 437,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 431,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 443,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1632,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 444,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"
+ ],
+ [
+ "Assign",
+ "A1 := [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]"
+ ],
+ [
+ "Assign",
+ "A2 := copy-pack-holes c0"
+ ],
+ [
+ "Assign",
+ "X185^2 := [X191^2 | X192^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1635
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 445,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "copy-pack-holes",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"
+ ],
+ [
+ "Assign",
+ "A2 := X191^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "findall-local-canonical X193^2",
+ "goal_id": 1636
+ },
+ {
+ "goal_text": "coq.copy-clauses-for-unfold X193^2 X194^2",
+ "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_id": 1638
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 446,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1636,
+ "current_goal_text": "findall-local-canonical X193^2",
+ "current_goal_predicate": "findall-local-canonical",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X193^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "std.findall (local-canonical X196^2) X197^2",
+ "goal_id": 1639
+ },
+ {
+ "goal_text": "std.map X197^2 local-canonical-gref X193^2",
+ "goal_id": 1640
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 446,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 447,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1639,
+ "current_goal_text": "std.findall (local-canonical X196^2) X197^2",
+ "current_goal_predicate": "std.findall",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := local-canonical X196^2"
+ ],
+ [
+ "Assign",
+ "A1 := X197^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "findall_solutions (local-canonical X196^2) X197^2",
+ "goal_id": 1641
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "step_id": 447,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 446,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 448,
+ "runtime_id": 8,
+ "step": [
+ "Findall",
+ {
+ "findall_goal_id": 1641,
+ "findall_goal_text": "findall_solutions (local-canonical X196^2) X197^2",
+ "findall_cards": [
+ {
+ "step_id": 0,
+ "runtime_id": 12,
+ "step": [
+ "Init",
+ {
+ "goal_text": "local-canonical X0^2",
+ "goal_id": 1643
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 1,
+ "runtime_id": 12,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1643,
+ "current_goal_text": "local-canonical X0^2",
+ "current_goal_predicate": "local-canonical",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": []
+ }
+ ],
+ "color": "Red"
+ }
+ ],
+ "findall_solution_text": [
+ "X197^2 := []"
+ ],
+ "findall_stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "findall",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 448,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "step_id": 447,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 446,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 449,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1640,
+ "current_goal_text": "std.map [] local-canonical-gref X193^2",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X193^2 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "step_id": 449,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 446,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 450,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1637,
+ "current_goal_text": "coq.copy-clauses-for-unfold [] X194^2",
+ "current_goal_predicate": "coq.copy-clauses-for-unfold",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.copy-clauses-for-unfold [] []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 7411
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X194^2 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.copy-clauses-for-unfold [] []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 7411
+ }
+ ]
+ }
+ ],
+ "step_id": 450,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 451,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2",
+ "goal_id": 1644
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 452,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "Context",
+ 451
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A5 := const «Builders_18.HB_unnamed_factory_20»"
+ ],
+ [
+ "Assign",
+ "A0 := [c0, c1]"
+ ],
+ [
+ "Assign",
+ "X191^2 := app [global (const «Builders_18.HB_unnamed_factory_20») | X198^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "pack? (const «Builders_18.HB_unnamed_factory_20») _",
+ "goal_id": 1645
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1646
+ },
+ {
+ "goal_text": "std.rev [c0, c1] [X199^2, c0 | X200^2]",
+ "goal_id": 1647
+ },
+ {
+ "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_id": 1650
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 454,
+ 456
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "Context",
+ 451
+ ]
+ }
+ ],
+ "step_id": 452,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 453,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1645,
+ "current_goal_text": "pack? (const «Builders_18.HB_unnamed_factory_20») _",
+ "current_goal_predicate": "pack?",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "Context",
+ 451
+ ]
+ }
+ ],
+ "step_id": 452,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 454,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"
+ ],
+ [
+ "Assign",
+ "A1 := X191^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1653
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1654
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 456
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 454,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 455,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1651,
+ "current_goal_text": "name (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1])",
+ "current_goal_predicate": "name",
+ "failed_attempts": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 455,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 454,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 456,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"
+ ],
+ [
+ "Assign",
+ "X191^2 := app X202^2"
+ ]
+ ]
+ },
+ "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_id": 1656
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 457,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1655,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 458,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (const «Builders_18.HB_unnamed_factory_20»)"
+ ],
+ [
+ "Assign",
+ "A1 := [c0, c1]"
+ ],
+ [
+ "Assign",
+ "A2 := copy"
+ ],
+ [
+ "Assign",
+ "X202^2 := [X203^2 | X204^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2",
+ "goal_id": 1657
+ },
+ {
+ "goal_text": "std.map [c0, c1] copy X204^2",
+ "goal_id": 1658
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 459,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1657,
+ "current_goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2",
+ "current_goal_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (const «Builders_18.HB_unnamed_factory_20»)"
+ ],
+ [
+ "Assign",
+ "A1 := X203^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1661
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1662
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 461
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 459,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 460,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1659,
+ "current_goal_text": "name (global (const «Builders_18.HB_unnamed_factory_20»))",
+ "current_goal_predicate": "name",
+ "failed_attempts": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 460,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 459,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 461,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1657,
+ "current_goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2",
+ "current_goal_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (as (global _) A0) A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 111,
+ "column": 0,
+ "character": 4402
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (const «Builders_18.HB_unnamed_factory_20»)"
+ ],
+ [
+ "Assign",
+ "X203^2 := global (const «Builders_18.HB_unnamed_factory_20»)"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1663
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (as (global _) A0) A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 111,
+ "column": 0,
+ "character": 4402
+ }
+ ]
+ }
+ ],
+ "step_id": 461,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 462,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1663,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 463,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1658,
+ "current_goal_text": "std.map [c0, c1] copy X204^2",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := [c1]"
+ ],
+ [
+ "Assign",
+ "A2 := copy"
+ ],
+ [
+ "Assign",
+ "X204^2 := [X205^2 | X206^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "copy c0 X205^2",
+ "goal_id": 1664
+ },
+ {
+ "goal_text": "std.map [c1] copy X206^2",
+ "goal_id": 1665
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 464,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1664,
+ "current_goal_text": "copy c0 X205^2",
+ "current_goal_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := X205^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "name c0",
+ "goal_id": 1666
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1667
+ },
+ {
+ "goal_text": "c0 = X205^2",
+ "goal_id": 1668
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1669
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 464,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 465,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1666,
+ "current_goal_text": "name c0",
+ "current_goal_predicate": "name",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "c0 = c0",
+ "goal_id": 1670
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 465,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 464,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 466,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1670,
+ "current_goal_text": "c0 = c0",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 466,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 465,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 464,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 467,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1667,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 468,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1668,
+ "current_goal_text": "c0 = X205^2",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X205 c0 c1 := c0"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 468,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 464,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 469,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1669,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 470,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1665,
+ "current_goal_text": "std.map [c1] copy X206^2",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c1"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ],
+ [
+ "Assign",
+ "A2 := copy"
+ ],
+ [
+ "Assign",
+ "X206^2 := [X207^2 | X208^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "copy c1 X207^2",
+ "goal_id": 1671
+ },
+ {
+ "goal_text": "std.map [] copy X208^2",
+ "goal_id": 1672
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 470,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 471,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1671,
+ "current_goal_text": "copy c1 X207^2",
+ "current_goal_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c1"
+ ],
+ [
+ "Assign",
+ "A1 := X207^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "name c1",
+ "goal_id": 1673
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1674
+ },
+ {
+ "goal_text": "c1 = X207^2",
+ "goal_id": 1675
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1676
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 471,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 470,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 472,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1673,
+ "current_goal_text": "name c1",
+ "current_goal_predicate": "name",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "c1 = c1",
+ "goal_id": 1677
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 472,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 471,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 470,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 473,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1677,
+ "current_goal_text": "c1 = c1",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 473,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 472,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 471,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 470,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 474,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1674,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 475,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1675,
+ "current_goal_text": "c1 = X207^2",
+ "current_goal_predicate": "=",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X207 c0 c1 := c1"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "eq",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 475,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 471,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 470,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 476,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1676,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 477,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1672,
+ "current_goal_text": "std.map [] copy X208^2",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X208^2 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "step_id": 477,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 470,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 463,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 458,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 456,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 451,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 445,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 478,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"
+ ],
+ [
+ "Assign",
+ "A1 := []"
+ ],
+ [
+ "Assign",
+ "A2 := copy-pack-holes c0"
+ ],
+ [
+ "Assign",
+ "X192^2 := [X209^2 | X210^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) X209^2",
+ "goal_id": 1678
+ },
+ {
+ "goal_text": "std.map [] (copy-pack-holes c0) X210^2",
+ "goal_id": 1679
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 479,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "copy-pack-holes",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"
+ ],
+ [
+ "Assign",
+ "A2 := X209^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "findall-local-canonical X211^2",
+ "goal_id": 1680
+ },
+ {
+ "goal_text": "coq.copy-clauses-for-unfold X211^2 X212^2",
+ "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_id": 1682
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 480,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1680,
+ "current_goal_text": "findall-local-canonical X211^2",
+ "current_goal_predicate": "findall-local-canonical",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := X211^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "std.findall (local-canonical X214^2) X215^2",
+ "goal_id": 1683
+ },
+ {
+ "goal_text": "std.map X215^2 local-canonical-gref X211^2",
+ "goal_id": 1684
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 480,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 481,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1683,
+ "current_goal_text": "std.findall (local-canonical X214^2) X215^2",
+ "current_goal_predicate": "std.findall",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := local-canonical X214^2"
+ ],
+ [
+ "Assign",
+ "A1 := X215^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "findall_solutions (local-canonical X214^2) X215^2",
+ "goal_id": 1685
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "step_id": 481,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 480,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 482,
+ "runtime_id": 8,
+ "step": [
+ "Findall",
+ {
+ "findall_goal_id": 1685,
+ "findall_goal_text": "findall_solutions (local-canonical X214^2) X215^2",
+ "findall_cards": [
+ {
+ "step_id": 0,
+ "runtime_id": 13,
+ "step": [
+ "Init",
+ {
+ "goal_text": "local-canonical X0^2",
+ "goal_id": 1687
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 1,
+ "runtime_id": 13,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1687,
+ "current_goal_text": "local-canonical X0^2",
+ "current_goal_predicate": "local-canonical",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": []
+ }
+ ],
+ "color": "Red"
+ }
+ ],
+ "findall_solution_text": [
+ "X215^2 := []"
+ ],
+ "findall_stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "findall",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 482,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 283,
+ "column": 0,
+ "character": 9378
+ }
+ ]
+ }
+ ],
+ "step_id": 481,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 480,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 483,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1684,
+ "current_goal_text": "std.map [] local-canonical-gref X211^2",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X211^2 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [] _ []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 123,
+ "column": 0,
+ "character": 4084
+ }
+ ]
+ }
+ ],
+ "step_id": 483,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 200,
+ "column": 0,
+ "character": 7260
+ }
+ ]
+ }
+ ],
+ "step_id": 480,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 484,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1681,
+ "current_goal_text": "coq.copy-clauses-for-unfold [] X212^2",
+ "current_goal_predicate": "coq.copy-clauses-for-unfold",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.copy-clauses-for-unfold [] []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 7411
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "X212^2 := []"
+ ]
+ ]
+ },
+ "siblings": [],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(coq.copy-clauses-for-unfold [] []) :- .",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 7411
+ }
+ ]
+ }
+ ],
+ "step_id": 484,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 485,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "=>",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2",
+ "goal_id": 1688
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 486,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "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_loc": [
+ "Context",
+ 485
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A5 := const «Builders_18.HB_unnamed_factory_22»"
+ ],
+ [
+ "Assign",
+ "A0 := [c0, c1]"
+ ],
+ [
+ "Assign",
+ "X209^2 := app [global (const «Builders_18.HB_unnamed_factory_22») | X216^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "pack? (const «Builders_18.HB_unnamed_factory_22») _",
+ "goal_id": 1689
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1690
+ },
+ {
+ "goal_text": "std.rev [c0, c1] [X217^2, c0 | X218^2]",
+ "goal_id": 1691
+ },
+ {
+ "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_id": 1694
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 488,
+ 490
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "Context",
+ 485
+ ]
+ }
+ ],
+ "step_id": 486,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 487,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1689,
+ "current_goal_text": "pack? (const «Builders_18.HB_unnamed_factory_22») _",
+ "current_goal_predicate": "pack?",
+ "failed_attempts": [],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "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_loc": [
+ "Context",
+ 485
+ ]
+ }
+ ],
+ "step_id": 486,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 488,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"
+ ],
+ [
+ "Assign",
+ "A1 := X209^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1697
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1698
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 490
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 488,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 489,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1695,
+ "current_goal_text": "name (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1])",
+ "current_goal_predicate": "name",
+ "failed_attempts": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 489,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 488,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 490,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"
+ ],
+ [
+ "Assign",
+ "X209^2 := app X220^2"
+ ]
+ ]
+ },
+ "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_id": 1700
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 490,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 491,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1699,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 492,
+ "runtime_id": 8,
+ "step": [
+ "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_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (const «Builders_18.HB_unnamed_factory_22»)"
+ ],
+ [
+ "Assign",
+ "A1 := [c0, c1]"
+ ],
+ [
+ "Assign",
+ "A2 := copy"
+ ],
+ [
+ "Assign",
+ "X220^2 := [X221^2 | X222^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2",
+ "goal_id": 1701
+ },
+ {
+ "goal_text": "std.map [c0, c1] copy X222^2",
+ "goal_id": 1702
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 492,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 490,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 493,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1701,
+ "current_goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2",
+ "current_goal_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (const «Builders_18.HB_unnamed_factory_22»)"
+ ],
+ [
+ "Assign",
+ "A1 := X221^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "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_id": 1705
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1706
+ }
+ ],
+ "siblings_aggregated_outcome": "Fail"
+ }
+ ],
+ "more_successful_attempts": [
+ 495
+ ],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 493,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 492,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 490,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "YellowGreen"
+ },
+ {
+ "step_id": 494,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1703,
+ "current_goal_text": "name (global (const «Builders_18.HB_unnamed_factory_22»))",
+ "current_goal_predicate": "name",
+ "failed_attempts": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ }
+ ],
+ "successful_attempts": [],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 494,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 493,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 492,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 490,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Red"
+ },
+ {
+ "step_id": 495,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1701,
+ "current_goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2",
+ "current_goal_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (as (global _) A0) A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 111,
+ "column": 0,
+ "character": 4402
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := global (const «Builders_18.HB_unnamed_factory_22»)"
+ ],
+ [
+ "Assign",
+ "X221^2 := global (const «Builders_18.HB_unnamed_factory_22»)"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "!",
+ "goal_id": 1707
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (as (global _) A0) A0) :- (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 111,
+ "column": 0,
+ "character": 4402
+ }
+ ]
+ }
+ ],
+ "step_id": 495,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 492,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 490,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 496,
+ "runtime_id": 8,
+ "step": [
+ "Cut",
+ {
+ "cut_goal_id": 1707,
+ "cut_victims": []
+ }
+ ],
+ "color": "Grey"
+ },
+ {
+ "step_id": 497,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1702,
+ "current_goal_text": "std.map [c0, c1] copy X222^2",
+ "current_goal_predicate": "std.map",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := [c1]"
+ ],
+ [
+ "Assign",
+ "A2 := copy"
+ ],
+ [
+ "Assign",
+ "X222^2 := [X223^2 | X224^2]"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "copy c0 X223^2",
+ "goal_id": 1708
+ },
+ {
+ "goal_text": "std.map [c1] copy X224^2",
+ "goal_id": 1709
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 497,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 492,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 490,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 498,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1708,
+ "current_goal_text": "copy c0 X223^2",
+ "current_goal_predicate": "copy",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "events": [
+ [
+ "Assign",
+ "A0 := c0"
+ ],
+ [
+ "Assign",
+ "A1 := X223^2"
+ ]
+ ]
+ },
+ "siblings": [
+ {
+ "goal_text": "name c0",
+ "goal_id": 1710
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1711
+ },
+ {
+ "goal_text": "c0 = X223^2",
+ "goal_id": 1712
+ },
+ {
+ "goal_text": "!",
+ "goal_id": 1713
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 498,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 497,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 492,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 490,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 361,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 356,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 224,
+ "column": 0,
+ "character": 8609
+ }
+ ]
+ }
+ ],
+ "step_id": 354,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "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",
+ "line": 213,
+ "column": 0,
+ "character": 8143
+ }
+ ]
+ }
+ ],
+ "step_id": 353,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 239,
+ "column": 0,
+ "character": 9183
+ }
+ ]
+ }
+ ],
+ "step_id": 352,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 245,
+ "column": 0,
+ "character": 9440
+ }
+ ]
+ }
+ ],
+ "step_id": 351,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 350,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 347,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 340,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 86,
+ "column": 0,
+ "character": 2829
+ }
+ ]
+ }
+ ],
+ "step_id": 339,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 338,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 332,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 320,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 310,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 12694
+ }
+ ]
+ }
+ ],
+ "step_id": 309,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 308,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 4390
+ }
+ ]
+ }
+ ],
+ "step_id": 307,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 306,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 282,
+ "column": 0,
+ "character": 12180
+ }
+ ]
+ }
+ ],
+ "step_id": 305,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 196,
+ "column": 0,
+ "character": 8410
+ }
+ ]
+ }
+ ],
+ "step_id": 304,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 301,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 288,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 284,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 281,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 222,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 208,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 182,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 175,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 169,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 162,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 153,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 143,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 125,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 122,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 99,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi",
+ "line": 25,
+ "column": 0,
+ "character": 1064
+ }
+ ]
+ }
+ ],
+ "step_id": 98,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-logging A0) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi",
+ "line": 289,
+ "column": 0,
+ "character": 11419
+ }
+ ]
+ }
+ ],
+ "step_id": 97,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 75,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 74,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 14,
+ "column": 0,
+ "character": 453
+ }
+ ]
+ }
+ ],
+ "step_id": 4,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "./structures.v",
+ "line": 594,
+ "column": 0,
+ "character": 2
+ }
+ ]
+ }
+ ],
+ "step_id": 2,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 1,
+ "runtime_id": 8
+ }
+ ]
+ }
+ ],
+ "color": "Green"
+ },
+ {
+ "step_id": 499,
+ "runtime_id": 8,
+ "step": [
+ "Inference",
+ {
+ "current_goal_id": 1710,
+ "current_goal_text": "name c0",
+ "current_goal_predicate": "name",
+ "failed_attempts": [],
+ "successful_attempts": [
+ {
+ "attempt": {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "events": []
+ },
+ "siblings": [
+ {
+ "goal_text": "c0 = c0",
+ "goal_id": 1714
+ }
+ ],
+ "siblings_aggregated_outcome": "Success"
+ }
+ ],
+ "more_successful_attempts": [],
+ "more_failing_attempts": [],
+ "stack": [
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "name",
+ "kind": "FFI",
+ "payload": []
+ }
+ ],
+ "step_id": 499,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 109,
+ "column": 0,
+ "character": 4312
+ }
+ ]
+ }
+ ],
+ "step_id": 498,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 497,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 492,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "/build/source/./elpi/coq-lib.elpi",
+ "line": 119,
+ "column": 0,
+ "character": 4703
+ }
+ ]
+ }
+ ],
+ "step_id": 490,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 485,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi",
+ "line": 318,
+ "column": 0,
+ "character": 12866
+ }
+ ]
+ }
+ ],
+ "step_id": 479,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 478,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 444,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 124,
+ "column": 0,
+ "character": 4097
+ }
+ ]
+ }
+ ],
+ "step_id": 430,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 422,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 421,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 420,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 115,
+ "column": 0,
+ "character": 3974
+ }
+ ]
+ }
+ ],
+ "step_id": 418,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(A0 ; _) :- A0.",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "elpi-builtin.elpi",
+ "line": 28,
+ "column": 0,
+ "character": 296
+ }
+ ]
+ }
+ ],
+ "step_id": 417,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 35,
+ "column": 0,
+ "character": 1155
+ }
+ ]
+ }
+ ],
+ "step_id": 416,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 415,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 406,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 396,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 108,
+ "column": 0,
+ "character": 3601
+ }
+ ]
+ }
+ ],
+ "step_id": 395,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 141,
+ "column": 0,
+ "character": 4745
+ }
+ ]
+ }
+ ],
+ "step_id": 394,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 393,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 384,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 375,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 371,
+ "runtime_id": 8
+ },
+ {
+ "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_loc": [
+ "File",
+ {
+ "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi",
+ "line": 100,
+ "column": 0,
+ "character": 3290
+ }
+ ]
+ }
+ ],
+ "step_id": 370,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "implication",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 369,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "pi",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 368,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "and",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 367,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "BuiltinRule",
+ {
+ "name": "sigma",
+ "kind": "Logic",
+ "payload": []
+ }
+ ],
+ "step_id": 366,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).",
+ "rule_loc": [
+ "File",
+ {
+ "filename": "builtin_stdlib.elpi",
+ "line": 256,
+ "column": 0,
+ "character": 8603
+ }
+ ]
+ }
+ ],
+ "step_id": 365,
+ "runtime_id": 8
+ },
+ {
+ "rule": [
+ "UserRule",
+ {
+ "rule_t